heroku 推送被拒绝,无法编译Python应用程序

uyhoqukh  于 2022-11-13  发布在  Python
关注(0)|答案(5)|浏览(119)

我在尝试将Django应用部署到Heroku时遇到了一个拒绝错误。我在这里查看了可能的解决方案:

  1. Heroku push rejected, failed to compile Python/django app (Python 2.7)
  2. Error pushing Django project to Heroku
    但这两种方法对我都不管用。
    这是我从始至终推给希禄的怜:
git push heroku master 
Initializing repository, done.
Counting objects: 7024, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5915/5915), done.
Writing objects: 100% (7024/7024), 8.77 MiB | 104 KiB/s, done.
Total 7024 (delta 2183), reused 0 (delta 0)

 -----> Python app detected
-----> No runtime.txt provided; assuming python-2.7.6.
-----> Preparing Python runtime (python-2.7.6)
-----> Installing Setuptools (2.1)
-----> Installing Pip (1.5.4)
-----> Installing dependencies using Pip (1.5.4)
     Downloading/unpacking Django==1.6.2 (from -r requirements.txt (line 1))
     Downloading/unpacking argparse==1.2.1 (from -r requirements.txt (line 2))
       argparse an externally hosted file and may be unreliable
       Running setup.py (path:/tmp/pip_build_u16439/argparse/setup.py) egg_info for package argparse

         no previously-included directories found matching 'doc/_build'
         no previously-included directories found matching 'env24'
         no previously-included directories found matching 'env25'
         no previously-included directories found matching 'env26'
         no previously-included directories found matching 'env27'
     Downloading/unpacking distribute==0.6.24 (from -r requirements.txt (line 3))
       Running setup.py (path:/tmp/pip_build_u16439/distribute/setup.py) egg_info for package distribute

         warning: no files found matching 'Makefile' under directory 'docs'
         warning: no files found matching 'indexsidebar.html' under directory 'docs'
     Downloading/unpacking dj-database-url==0.3.0 (from -r requirements.txt (line 4))
       Downloading dj_database_url-0.3.0-py2.py3-none-any.whl
     Downloading/unpacking dj-static==0.0.5 (from -r requirements.txt (line 5))
       Downloading dj-static-0.0.5.tar.gz
       Running setup.py (path:/tmp/pip_build_u16439/dj-static/setup.py) egg_info for package dj-static

     Downloading/unpacking django-toolbelt==0.0.1 (from -r requirements.txt (line 6))
       Downloading django-toolbelt-0.0.1.tar.gz
       Running setup.py (path:/tmp/pip_build_u16439/django-toolbelt/setup.py) egg_info for package django-toolbelt

     Downloading/unpacking gunicorn==18.0 (from -r requirements.txt (line 7))
       Running setup.py (path:/tmp/pip_build_u16439/gunicorn/setup.py) egg_info for package gunicorn

     Downloading/unpacking psycopg2==2.5.2 (from -r requirements.txt (line 8))
       Running setup.py (path:/tmp/pip_build_u16439/psycopg2/setup.py) egg_info for package psycopg2

     Downloading/unpacking pystache==0.5.3 (from -r requirements.txt (line 9))
       Running setup.py (path:/tmp/pip_build_u16439/pystache/setup.py) egg_info for package pystache
         pystache: using: version '2.1' of <module 'setuptools' from '/app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg/setuptools/__init__.pyc'>

     Downloading/unpacking static==1.0.2 (from -r requirements.txt (line 10))
       Downloading static-1.0.2.tar.gz
       Running setup.py (path:/tmp/pip_build_u16439/static/setup.py) egg_info for package static

     Installing collected packages: Django, argparse, distribute, dj-database-url, dj-static, django-toolbelt, gunicorn, psycopg2, pystache, static
       Running setup.py install for argparse

         no previously-included directories found matching 'doc/_build'
         no previously-included directories found matching 'env24'
         no previously-included directories found matching 'env25'
         no previously-included directories found matching 'env26'
         no previously-included directories found matching 'env27'
       Running setup.py install for distribute
         Before install bootstrap.
         Scanning installed packages
         Setuptools installation detected at /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg
         Egg installation
         Patching...
         Renaming /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg into /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg.OLD.1397160440.32
         Patched done.
         Relaunching...
         Traceback (most recent call last):
           File "<string>", line 1, in <module>
         NameError: name 'install' is not defined
         Complete output from command /app/.heroku/python/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_u16439/distribute/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-7JPdSe-record/install-record.txt --single-version-externally-managed --compile:
         Before install bootstrap.

     Scanning installed packages

     Setuptools installation detected at /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg

     Egg installation

     Patching...

     Renaming /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg into /app/.heroku/python/lib/python2.7/site-packages/setuptools-2.1-py2.7.egg.OLD.1397160440.32

     Patched done.

     Relaunching...

     Traceback (most recent call last):

       File "<string>", line 1, in <module>

     NameError: name 'install' is not defined

     ----------------------------------------
     Cleaning up...
     Command /app/.heroku/python/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_u16439/distribute/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-7JPdSe-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_u16439/distribute
     Storing debug log for failure in /app/.pip/pip.log

 !     Push rejected, failed to compile Python app

我的requirements.txt

Django==1.6.2
argparse==1.2.1
distribute==0.6.24
dj-database-url==0.3.0
dj-static==0.0.5
django-toolbelt==0.0.1
gunicorn==18.0
psycopg2==2.5.2
pystache==0.5.3
static==1.0.2
wsgiref==0.1.2

Procfile

web: gunicorn app.wsgi

我已经按照Heroku网站上的说明做了。你知道我错过了什么吗?

neskvpey

neskvpey1#

这显然是一个bug in the distribute package,似乎不太可能得到修复:
Distribute现在被认为是过时的,被setuptools取代了。我建议用“setuptools==1.0”或类似的替换requirements.txt中的“distribute==0.6.28”。最新版本的pip(〉=1.4)和setuptools(〉=0.7)对统一代码和升级有更好的支持,并试图避免像这里遇到的问题。

v1uwarro

v1uwarro2#

这是过时的distribute软件包的问题。请参阅Bitbucket上的Bug #91
在您的requirements.txt档案中,将distribute==0.6.24取代为setuptools==0.7.3应该可以解决您的问题。

093gszye

093gszye3#

在runtime.txt文件中,可以包含以下任何版本:python-在所有支持的堆栈上为3.10.6(推荐)python-在所有支持的堆栈上为3.9.13 python-仅在Heroku-18和Heroku-20上为3.8.13 python-仅在Heroku-18和Heroku-20上为3.7.13
这将解决您的错误。

0g0grzrc

0g0grzrc4#

我有这个错误,直到我升级Heroku堆栈从雪松-14(旧的和不赞成的)到Heroku-18(新的)。然后一切工作。

oymdgrw7

oymdgrw75#

从消息中我们可以清楚地看到“未提供runtime.txt;创建runtime.txt文件并添加一个heroku支持的Python版本(https://devcenter.heroku.com/articles/python-support#recognizing-a-python-app)。
requirements.txt中的一个软件包与您的python版本冲突

相关问题