【问题标题】:Unable to import class from one app into another in django无法将类从一个应用程序导入 django 中的另一个应用程序
【发布时间】:2017-01-31 07:11:34
【问题描述】:

我正在尝试从另一个 Django 应用程序中的一个 Django 应用程序导入一个类。

mainProjectFolder
|--__init__.py
|--manage.py
|--app1
    |--__init__.py
    |--class1.py
|--app2
    |--__init__.py
    |--anotherClass.py
|--mainProjectFolder
    |--__init__.py
    |--settings.py
    ...

app2.anotherClass.py,我在做:

from mainProjectFolder.app1.class1 import Class1

我收到以下错误:

ImportError: No module named 'mainProjectFolder.app1'

我已经在settings.py 文件中注册了我在INSTALLED_APPS 中的应用程序。

如果有不清楚的地方请告诉我,我会编辑所需的。

【问题讨论】:

    标签: python django python-import importerror


    【解决方案1】:

    导入时无需包含项目名称。 如果项目文件夹中的所有应用程序都处于同一层次结构中,则只需通过它们的应用程序调用文件即可。

    只需使用:

     from app1.class1 import Class1
    

     from app2.anotherClass import Class2
    

    关于错误:

    'unresolved references app1'
    

    使用包含应用程序的项目文件夹作为Source Root,然后应用程序将被识别。

    【讨论】:

    • 这不是相对导入,我是从app2.anotherClass导入app1.class1
    • @ParthapratimNeog 只需使用我的解决方案。名称可能不是相对导入,但解决方案是正确的。
    • 它确实有效,但在 PyCharm 中仍然有红色的下属说“未解决的引用 app1”
    • @ParthapratimNeog 尝试刷新和/或重新启动 pycharm。
    • @ParthapratimNeog 并使用包含应用程序的项目文件夹作为 Source Root,然后应用程序将被识别。
    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多