【问题标题】:Getting the right dependency in Heroku在 Heroku 中获得正确的依赖
【发布时间】: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 吗?

标签: python django heroku pip


【解决方案1】:

使用可编辑依赖项时,您必须定义标签或提交哈希。

按照你的例子:

-e git+https://github.com/merlinares/django-registration.git@3.1#egg=django-registration

-e git+https://github.com/merlinares/django-registration.git@40fee813ca444236da6d66f516b869fd8ebbe9cd#egg=django-registration

【讨论】:

    猜你喜欢
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 2010-10-27
    • 1970-01-01
    • 2023-03-08
    • 2021-12-10
    相关资源
    最近更新 更多