【问题标题】:pip issue while deploying Django app to Heroku将 Django 应用程序部署到 Heroku 时出现 pip 问题
【发布时间】:2012-07-08 01:55:52
【问题描述】:

我在尝试将我的 Django 应用部署到 Heroku 时遇到问题。

它抱怨安装 facebook-sdk 库的问题,但实际上有 requirements.txt 文件中没有这样的东西。

我已经尝试使用-f 标志推送,我注释掉了 requirements.txt 中的行。我什至推送了一个空的需求文件,但问题仍然存在。

我不知道除了创建一个新的应用程序或 heroku 的 repo 是否有任何方法可以重置?有什么我可以尝试的想法吗?

控制台日志:

$ git push prod master
Counting objects: 52282, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (17957/17957), done.
Writing objects: 100% (52282/52282), 138.01 MiB | 137 KiB/s, done.
Total 52282 (delta 33410), reused 48501 (delta 30768)

-----> Heroku receiving push
-----> Python/Django app detected
-----> Preparing Python interpreter (2.7.2)
-----> Creating Virtualenv version 1.7
       New python executable in .heroku/venv/bin/python2.7
       Also creating executable in .heroku/venv/bin/python
       Installing distribute.............................................................................................................................................................................................done.
       Installing pip...............done.
       Running virtualenv with interpreter /usr/local/bin/python2.7
-----> Activating virtualenv
-----> Installing dependencies using pip version 1.0.2
error: The requested URL returned error: 401 while accessing http://github.com/facebook/python-sdk.git/info/refs

fatal: HTTP request failed
       Downloading/unpacking paramiko (from -r requirements.txt (line 17))
       Creating supposed download cache at /app/tmp/repo.git/.cache/pip_downloads
         Storing download in cache at /app/tmp/repo.git/.cache/pip_downloads/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fparamiko%2Fparamiko-1.7.7.2.zip
         Running setup.py egg_info for package paramiko

       Obtaining facebook-sdk from git+http://github.com/facebook/python-sdk.git#egg=facebook-sdk (from -r requirements.txt (line 23))
         Cloning http://github.com/facebook/python-sdk.git to ./.heroku/src/facebook-sdk
         Complete output from command /usr/bin/git clone -q http://github.com/facebook/python-sdk.git /tmp/build_1bn5oykhrmms7/.heroku/src/facebook-sdk:

       ----------------------------------------
       Command /usr/bin/git clone -q http://github.com/facebook/python-sdk.git /tmp/build_1bn5oykhrmms7/.heroku/src/facebook-sdk failed with error code 128
       Storing complete log in /app/.pip/pip.log
 !     Heroku push rejected, failed to compile Python/django app

【问题讨论】:

    标签: django deployment heroku


    【解决方案1】:

    正确的解决方案是“Maxime R.”在how to pip uninstall with virtualenv on heroku cedar stack?上的解决方案

    heroku 实验室:启用 user_env_compile heroku 配置:添加 CLEAN_VIRTUALENV=true

    目前这不起作用,因为存在错误。你需要使用 我的 buildpack 分支,直到上游修复:

    heroku 配置:添加 BUILDPACK_URL=git@github.com:blaze33/heroku-buildpack-python.git

    现在推送你的新代码,你会注意到整个 virtualenv 重新安装。

    Andrey 的回答自 2012 年 3 月 23 日起不再有效。新风格 virtualenv commit 将虚拟环境从 /app 移动到 /app/.heroku/venv 但是 purge 分支没有更新以赶上,所以你最终 虚拟环境不在 PYTHONHOME 中。

    在几次尝试使用 heroku run 命令后,我终于成功应用了 Maxime R. 解决方案。此外,我已经打开了 Heroku 票证,并且已向我确认 Heroku 支持是解决方案。

    【讨论】:

      【解决方案2】:

      发生这种情况是因为您为 python-SDK 的库 (http://github.com/facebook/python-sdk.git) 使用了一个空存储库,请尝试使用另一个存储库:https://github.com/pythonforfacebook/facebook-sdk

      【讨论】:

        【解决方案3】:

        我已经从虚拟 env 和 requirements.txt 中删除了两个包,并且暂时更改 Python 运行时(如建议的 here)是我发现允许我从 heroku 卸载这些包的唯一方法。

        【讨论】:

          猜你喜欢
          • 2016-09-06
          • 2017-01-26
          • 2021-07-23
          • 1970-01-01
          • 2014-07-16
          • 2014-11-25
          • 1970-01-01
          • 1970-01-01
          • 2013-10-23
          相关资源
          最近更新 更多