我正在构建一个使用photologue
的应用和其他一些以photologue
作为依赖关系的应用包(例如cmsplugin-photologue
)。但是,我需要使用github上托管的photologue
的修改版本。所有这些都将部署在Heroku上,这意味着依赖项的安装只能通过requirements.txt
文件完成。
原则上这很容易完成:我可以按照here所述将存储库添加到需求文件中,然后安装它。问题是原始photologue
也已安装,并最终使用正在使用的那个。
所以一般的问题是:使用pip
,如何用我自己的应用程序版本替换多个应用程序依赖的应用程序?
答案 0 :(得分:4)
只需使用-U
或--upgrade
选项将您的venv中的原始包替换为您的自定义版本:
cd myapp && venv/bin/pip install -U git+https://github.com/jcomeauictx/django-crispy-forms.git
然后在您的requirements.txt中替换
行django-crispy-forms==1.4.0
与
git+https://github.com/jcomeauictx/django-crispy-forms.git
当你推送到你的heroku实例时,你会看到类似的东西:
-----> Deleting 1 files matching .slugignore patterns.
-----> Python app detected
-----> Uninstalling stale dependencies
Uninstalling django-crispy-forms-1.4.0:
Successfully uninstalled django-crispy-forms-1.4.0
-----> Installing dependencies with pip
Collecting git+https://github.com/jcomeauictx/django-crispy-forms.git (from -r requirements.txt (line 6))
Cloning https://github.com/jcomeauictx/django-crispy-forms.git to /tmp/pip-AlSPnZ-build
Installing collected packages: django-crispy-forms
Running setup.py install for django-crispy-forms
Successfully installed django-crispy-forms-1.5.0
答案 1 :(得分:0)
This section of the documentation建议如果PIP找到包的多个定义(例如,通过--extra-index-url
或--find-links
),则将使用最后一个匹配。不幸的是,我无法在当前文档中找到此信息,因此可能已更改。
在您的需求文件中可能会出现这样的情况:
...
django-photologue
...
--find-links https://github.com/jdriscoll/django-photologue