无法在 Django 项目中导入顶级包
Can't import top level packages in django project
我正在开发一个 Django 项目,该项目需要我从另一个包导入代码。例如,在我的 "home" 应用程序中,我从 "users" 应用程序导入。在家庭应用程序的 index.py 视图中,我使用的是 from project.users import services
。 运行 这来自 python shell 工作正常,但是,如果我尝试 运行 python3 manage.py runserver
,我得到错误 ModuleNotFoundError: No module named 'project.users'
。我尝试将我的项目目录及其父级添加到我的 sys.path,但是,没有任何变化。我也尝试使用不同的机器和 venv 但没有成功。我该如何解决这个问题?
编辑:我还尝试了来自 django shell (python3 manage.py shell
) 的 运行ning from project.users import services
,我得到了相同的导入错误。
每个 django 项目都带有一个 settings.py 文件,django 将拒绝 运行 或加载模型,直到加载该 settings.py 文件。
settings.py 文件需要在模块中,并且是当前 PYTHONPATH 和环境的一部分。变量 DJANGO_SETTINGS_MODULE 应该设置为它。
例如:
# assuming your file is under /myproject/mywebsite/settings.py
export PYTHONPATH=/myproject/
export DJANGO_SETTINGS_MODULE=mywebsite.settings
编辑:
如果你在 virtualenv 中,你需要激活它才能 运行 ./manage.py 'command'
source path/to/your/virtualenv/bin/activate
我通过将导入从 from project.users import services
更改为 from users.import services
来解决问题。
此外,要修复 pycharm 中的红色下划线,只需将您的项目根目录(在我的示例中为 "project" 文件夹)标记为源代码根目录(右键单击 > 将目录标记为.. > 源代码根目录).
(@BearBrown 的回答,归功于他)
我正在开发一个 Django 项目,该项目需要我从另一个包导入代码。例如,在我的 "home" 应用程序中,我从 "users" 应用程序导入。在家庭应用程序的 index.py 视图中,我使用的是 from project.users import services
。 运行 这来自 python shell 工作正常,但是,如果我尝试 运行 python3 manage.py runserver
,我得到错误 ModuleNotFoundError: No module named 'project.users'
。我尝试将我的项目目录及其父级添加到我的 sys.path,但是,没有任何变化。我也尝试使用不同的机器和 venv 但没有成功。我该如何解决这个问题?
编辑:我还尝试了来自 django shell (python3 manage.py shell
) 的 运行ning from project.users import services
,我得到了相同的导入错误。
每个 django 项目都带有一个 settings.py 文件,django 将拒绝 运行 或加载模型,直到加载该 settings.py 文件。
settings.py 文件需要在模块中,并且是当前 PYTHONPATH 和环境的一部分。变量 DJANGO_SETTINGS_MODULE 应该设置为它。
例如:
# assuming your file is under /myproject/mywebsite/settings.py
export PYTHONPATH=/myproject/
export DJANGO_SETTINGS_MODULE=mywebsite.settings
编辑:
如果你在 virtualenv 中,你需要激活它才能 运行 ./manage.py 'command'
source path/to/your/virtualenv/bin/activate
我通过将导入从 from project.users import services
更改为 from users.import services
来解决问题。
此外,要修复 pycharm 中的红色下划线,只需将您的项目根目录(在我的示例中为 "project" 文件夹)标记为源代码根目录(右键单击 > 将目录标记为.. > 源代码根目录).
(@BearBrown 的回答,归功于他)