我正在开发一个使用多个应用程序(python 模块)的 django 项目。大多数 python 模块都是由其他人在他们自己的 git 存储库中维护的。我使用 git-submodules 命令将它们导入到我的项目的“apps”目录下,如下所示:
mysite/
mysite/apps
mysite/apps/django-extensions
mysite/apps/django-celery
mysite/apps/django-comments
mysite/apps/myapp
...etc
大多数子模块(例如 django-extensions)都有一个包含实际 python 模块的子文件夹:mysite/apps/django-extensions/django_extensions
这意味着我不能简单地将 python 路径设置为包含 mysite/apps——我必须将其设置为包含 mysite/apps/django-extensions,以便它可以导入 django_extensions 子文件夹。
打字很烦人:
PYTHONPATH=mysite/apps/django-extensions:mysite/apps/django-celery... python manage.py runserver
我应该有更简单的方法来布置我的仓库吗?一个更简单的过程? 只是为了好玩,我尝试了 mysite/apps/* 的 PYTHONPATH,但这不起作用。
这是错误的做法。不要在自己的项目文件中安装别人的第三方代码。相反,创建一个 virtualenv,并直接使用
pip
安装代码。
对 StackOverflow 将我的数据出售给 AI 不感兴趣。
您可以将这些路径放入
dependencies.pth
文件中,并且路径中只包含 .pth
。您的 site-packages / dist-packages 中有示例。
您可以尝试只检查存储库中想要的部分吗?因此,如果他们在您要检查的内容中包含实际代码,请不要检查额外的部分。
因此,不要获取 django-extensions,而是获取 django-extensions/django-extensions。
编辑:我相信这就是你上面可以做的。
另外,我相信你可以在第一个 django-extensions 目录中添加一个 __init__.py ,但是你还必须在你的导入中添加一个额外的 django-extensions ( __init__.py 告诉 python 它是一个包)。虽然我认为这可能有效,但我建议拍摄我的第一个示例。