在过去的几天里,当我尝试部署Django应用程序时,Heroku Build返回了这个错误。Django代码和文件结构与Django的官方文档相同,Procfile被添加到根文件夹中。
对数-
-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
-----> Python app detected
-----> No Python version was specified. Using the buildpack default: python-3.10.4
To use a different version, see: https://devcenter.heroku.com/articles/python-runtimes
Building wheels for collected packages: backports.zoneinfo
Building wheel for backports.zoneinfo (pyproject.toml): started
Building wheel for backports.zoneinfo (pyproject.toml): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /app/.heroku/python/bin/python /app/.heroku/python/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpqqu_1qow
cwd: /tmp/pip-install-txfn1ua9/backports-zoneinfo_a462ef61051d49e7bf54e715f78a34f1
Complete output (41 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.10
creating build/lib.linux-x86_64-3.10/backports
copying src/backports/__init__.py -> build/lib.linux-x86_64-3.10/backports
creating build/lib.linux-x86_64-3.10/backports/zoneinfo
copying src/backports/zoneinfo/_zoneinfo.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo
copying src/backports/zoneinfo/_tzpath.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo
copying src/backports/zoneinfo/_common.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo
copying src/backports/zoneinfo/_version.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo
copying src/backports/zoneinfo/__init__.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo
running egg_info
writing src/backports.zoneinfo.egg-info/PKG-INFO
writing dependency_links to src/backports.zoneinfo.egg-info/dependency_links.txt
writing requirements to src/backports.zoneinfo.egg-info/requires.txt
writing top-level names to src/backports.zoneinfo.egg-info/top_level.txt
reading manifest file 'src/backports.zoneinfo.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.png' under directory 'docs'
warning: no files found matching '*.svg' under directory 'docs'
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'docs/_output'
adding license file 'LICENSE'
adding license file 'licenses/LICENSE_APACHE'
writing manifest file 'src/backports.zoneinfo.egg-info/SOURCES.txt'
copying src/backports/zoneinfo/__init__.pyi -> build/lib.linux-x86_64-3.10/backports/zoneinfo
copying src/backports/zoneinfo/py.typed -> build/lib.linux-x86_64-3.10/backports/zoneinfo
running build_ext
building 'backports.zoneinfo._czoneinfo' extension
creating build/temp.linux-x86_64-3.10
creating build/temp.linux-x86_64-3.10/lib
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/app/.heroku/python/include/python3.10 -c lib/zoneinfo_module.c -o build/temp.linux-x86_64-3.10/lib/zoneinfo_module.o -std=c99
lib/zoneinfo_module.c: In function ‘zoneinfo_fromutc’:
lib/zoneinfo_module.c:600:19: error: ‘_PyLong_One’ undeclared (first use in this function); did you mean ‘_PyLong_New’?
600 | one = _PyLong_One;
| ^~~~~~~~~~~
| _PyLong_New
lib/zoneinfo_module.c:600:19: note: each undeclared identifier is reported only once for each function it appears in
error: command '/usr/bin/gcc' failed with exit code 1
----------------------------------------
ERROR: Failed building wheel for backports.zoneinfo
Failed to build backports.zoneinfo
ERROR: Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects
! Push rejected, failed to compile Python app.
! Push failed
- 谢谢-谢谢
7条答案
按热度按时间cwxwcias1#
我在heroku上部署我的应用程序时遇到了同样的错误,问题实际上是当你在heroku上部署它时,heroku默认使用python版本3.10.x和backports.zoneinfo在这个版本上不能正常工作,所以我建议你切换到版本3.8.x(稳定)。
为了做到这一点,你需要告诉heroku切换该版本,它可以这样做:
1.在根目录中创建runtime.txt。
1.python-3.8.10〈-在'runtime.txt'中写入此内容,以指定版本。
1.然后heroku将安装此版本,您将不会再收到任何错误。
PS:为我工作过,以后当heroku删除这个bug时,你可以切换到python的最新版本。
qmb5sa222#
使用python〉= 3.9时避免安装
backports.zoneinfo
编辑您的
requirements.txt
文件发件人:
收件人:
或:
您可以在这里阅读更多关于here的信息
lqfhib0f3#
我在创建我的容器时遇到了同样的错误。我通过使用我的Python venv的确切版本即3.8.9解决了这个错误
早些时候的图片,我使用3.8-alpine的图像的一个较轻的版本。但是,它不工作了,我得到了同样的错误,你的。
gc0ot86w4#
当你忘记修改requirements.txt文件和heroku服务器使用默认设置时,这种类型的问题就会发生,就像它使用python更新版本一样,这是不稳定的。使用以下命令,你将摆脱这种类型的问题。
您需要修改requirements.txt
$ git加-A
Python 3.8.10中的一个版本
然后推你的服务器,我相信你会摆脱这种类型的问题。为了推你的服务器...
l2osamch5#
将Python从3.10.5降级到3.9.0对我很有效,希望这对我有所帮助。
lrpiutwd6#
用python3.9版本安装venv对我有帮助。
python3.9默认版本在我的系统
pbgvytdp7#
我在Heroku上部署Scrapy spider时遇到了同样的错误,但是使用runtime.txt中的python-3.9.15解决了这个问题。但是,我的venv中安装的python是3.8.13
您可以尝试其中之一我不知道它们的实际含义,但这些是Heroku推荐的,您可以阅读完整的文档here