Django、Python 模块和 Git 子模块

问题描述 投票:0回答:4

我正在开发一个使用多个应用程序(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,但这不起作用。

python django git module git-submodules
4个回答
9
投票

这是错误的做法。不要在自己的项目文件中安装别人的第三方代码。相反,创建一个 virtualenv,并直接使用

pip
安装代码。


5
投票

对 StackOverflow 将我的数据出售给 AI 不感兴趣。


1
投票

您可以将这些路径放入

dependencies.pth
文件中,并且路径中只包含
.pth
。您的 site-packages / dist-packages 中有示例。


0
投票

您可以尝试只检查存储库中想要的部分吗?因此,如果他们在您要检查的内容中包含实际代码,请不要检查额外的部分。

因此,不要获取 django-extensions,而是获取 django-extensions/django-extensions。

编辑:我相信就是你上面可以做的。

另外,我相信你可以在第一个 django-extensions 目录中添加一个 __init__.py ,但是你还必须在你的导入中添加一个额外的 django-extensions ( __init__.py 告诉 python 它是一个包)。虽然我认为这可能有效,但我建议拍摄我的第一个示例。

© www.soinside.com 2019 - 2024. All rights reserved.