[英]Python relative import error?
我有一个django项目,我需要访问django主项目文件夹下的文件夹中的一些模型。让我举例说明。
src\
main\
urls.py
models.py
view.py
lib\
__init__.py
helper.py
这是示例文件夹结构,我需要在helper.py中导入一些主要的应用程序模型,我尝试了以下方法:
from main.models import exampleClass
from ..main.models import exampleClass
我还尝试在主项目文件夹中添加__init__.py
文件:
src\
...
main\
lib\
__init__.py
总是出错2种:
1)ValueError:相对导入错误2)没有模块名称。
我需要解决方案,并且需要很好的解释为什么我总是失败。非常感谢你们。
在main
文件夹而不是src
文件夹中添加__init__.py
。 然后尝试使用from main.models import exampleClass
。 它应该正在工作。
您如何设置$ PYTHONPATH变量? 搜索路径是相对于此环境变量的。
因此,如果要指定类似main.models
的路径,则该路径应包含src
目录。
请注意,您也可以使用sys.path
数组进行管理。
Django通常将所有应用程序添加到sys.path
。 您可以尝试将其打印在settings.py
文件中以获取想法。
要从项目的settings.py文件添加路径,您可以执行以下操作:
import os.path
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(os.path.join(BASE_DIR, "../lib"))
例如,如果您的lib
目录与包含settings.py
文件的目录处于同一级别。
如果main
和lib
都是django的应用程序,并且您已在INSTALLED_APPS
设置中注册它们,则不需要..
如果main
和lib
与manage.py
处于同一级别:
src/
main/
...
lib/
...
manage.py
...
您只需要:
from main.models import exampleClass
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.