繁体   English   中英

父模块“”未加载,无法执行相对导入

[英]Parent module '' not loaded, cannot perform relative import

这是项目结构。

--KP
   --app
       --api
           --views
                --mpg.py
                --gtt.py

mpg.py:

def cmcid():
     .....
     .....

gtt.py:

from .mpg import cmcid

def main():
    variable = cmcid()
if __name__ == "__main__":
    main()

当我从views目录运行时,即kp / app / api / views $ python gtt.py

我收到如下错误:

父模块“”未加载,无法执行相对导入

任何帮助表示赞赏。 谢谢..

您可能会在视图目录中错过__init__.py文件(它可能只是一个空文件)。

添加此文件,它将把您的目录转换为python包,并且导入应该起作用

请注意,父目录中也需要它。


另一个可能的原因是您在文件中使用了Django“ machinery”,因此可能无法直接作为python文件运行。

如果您需要编写与django应用程序交互的python脚本,则需要创建一个将使用python manage.py got执行的django命令。

您的gtt.py文件必须位于django应用程序的management\\commands子模块中。

它必须具有以下结构

from django.core.management.base import BaseCommand
from path.to.mpg import cmcid

class Command(BaseCommand):
    help = 'Your custom command'

    def handle(self, *args, **options):
        variable = cmcid()

有关命令https://docs.djangoproject.com/en/2.0/howto/custom-management-commands/的更多详细信息,请参见Django文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM