【发布时间】:2013-06-19 19:22:48
【问题描述】:
我正在尝试让 Heroku 接受具有 pip 要求的editable dependency(即-e git://github.com/merlinares/django-registration.git#egg=django-registration)。
但是,即使它似乎在部署时采用了该分叉,但实际上并没有使用它。我已经使用heroku run cat .heroku/python/lib/python2.7/site-packages/registration/forms.py 检查了站点包中的代码,它不包含新代码,而只是使用了以前安装的默认 django-registration 包。
但是,分叉的版本似乎存在于django-registration.egg-link指定的目录中,目录名为:
/app/.heroku/src/django-registration
部署时(即git push heroku master)我明白了:
-----> Installing dependencies using Pip (1.3.1)
Obtaining django-registration from git+git://github.com/mattlinares/django-registration.git#egg=django-registration (from -r requirements.txt (line 12))
Updating ./.heroku/src/django-registration clone
Running setup.py egg_info for package django-registration
Installing collected packages: django-registration
Running setup.py develop for django-registration
Creating /app/.heroku/python/lib/python2.7/site-packages/django-registration.egg-link (link to .)
django-registration 0.8-alpha-1 is already the active version in easy-install.pth
Installed /app/.heroku/src/django-registration
Successfully installed django-insensitive django-registration
Cleaning up...
我也手动尝试卸载和安装那个特定的 fork,效果如下:
(ssc)~/code/django/ssc: heroku run pip install --upgrade git+git://github.com/mattlinares/django-registration.git
Running `pip install --upgrade git+git://github.com/mattlinares/django-registration.git` attached to terminal... up, run.5704
Downloading/unpacking git+git://github.com/mattlinares/django-registration.git
Cloning git://github.com/mattlinares/django-registration.git to /tmp/pip-qpTF2t-build
Running setup.py egg_info for package from git+git://github.com/mattlinares/django-registration.git
Installing collected packages: django-registration
Found existing installation: django-registration 0.8-alpha-1
Uninstalling django-registration:
Successfully uninstalled django-registration
Running setup.py install for django-registration
Successfully installed django-registration
Cleaning up...
但我的应用程序没有使用registration 的版本,我正在尝试喂它。我怀疑用heroku run ls .heroku/python/lib/python2.7/site-packages 列出的鸡蛋:
django_registration-0.8-py2.7.egg-info registration
django-registration.egg-link
我也尝试按照how to pip uninstall with virtualenv on heroku cedar stack? 清除整个 virtualenv,但没有成功
我能做什么?
【问题讨论】:
-
这个运气好吗?我对另一个依赖项有同样的问题。
-
不走运。我想我放弃了计划并覆盖了我试图从我的应用程序中编辑的表单,这是更可取的。但是,当然,这里仍然存在 Heroku 问题。一个人应该能够使用不同的叉子。您是否尝试过重命名您的叉子,例如在这种情况下,那将是 django-registration-myfork?
-
实际上我的问题在于我控制的依赖项。 Heroku app A 依赖于 django app B,这两个都是我的代码。但是 django 应用程序 B 在 bitbucket 上,因此我可以使用 heroku 轻松 构建它。我一直在为应用程序 B 版本(v0.1.x)创建标签,并使用我想包含在 Heroku 应用程序 A 中的每个新提交来增加这些标签。我更新了 Heroku 应用程序 A 的 requirements.txt 以包含新的标签引用。这有点痛苦。
-
你能发布你的 pip freeze 输出,以便将 venv 部署到 heroku 吗?