Sar*_*shi 62 python django heroku
当我过去几天尝试部署 Django 应用程序时,Heroku Build 返回此错误。Django代码和文件结构与Django官方文档相同,并且在根文件夹中添加了Procfile。
\n日志 -
\n-----> Building on the Heroku-20 stack\n-----> Determining which buildpack to use for this app\n-----> Python app detected\n-----> No Python version was specified. Using the buildpack default: python-3.10.4\n To use a different version, see: https://devcenter.heroku.com/articles/python-runtimes\n Building wheels for collected packages: backports.zoneinfo\n Building wheel for backports.zoneinfo (pyproject.toml): started\n Building wheel for backports.zoneinfo (pyproject.toml): finished with status 'error'\n ERROR: Command errored out with exit status 1:\n 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\n cwd: /tmp/pip-install-txfn1ua9/backports-zoneinfo_a462ef61051d49e7bf54e715f78a34f1\n Complete output (41 lines):\n running bdist_wheel\n running build\n running build_py\n creating build\n creating build/lib.linux-x86_64-3.10\n creating build/lib.linux-x86_64-3.10/backports\n copying src/backports/__init__.py -> build/lib.linux-x86_64-3.10/backports\n creating build/lib.linux-x86_64-3.10/backports/zoneinfo\n copying src/backports/zoneinfo/_zoneinfo.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo\n copying src/backports/zoneinfo/_tzpath.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo\n copying src/backports/zoneinfo/_common.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo\n copying src/backports/zoneinfo/_version.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo\n copying src/backports/zoneinfo/__init__.py -> build/lib.linux-x86_64-3.10/backports/zoneinfo\n running egg_info\n writing src/backports.zoneinfo.egg-info/PKG-INFO\n writing dependency_links to src/backports.zoneinfo.egg-info/dependency_links.txt\n writing requirements to src/backports.zoneinfo.egg-info/requires.txt\n writing top-level names to src/backports.zoneinfo.egg-info/top_level.txt\n reading manifest file 'src/backports.zoneinfo.egg-info/SOURCES.txt'\n reading manifest template 'MANIFEST.in'\n warning: no files found matching '*.png' under directory 'docs'\n warning: no files found matching '*.svg' under directory 'docs'\n no previously-included directories found matching 'docs/_build'\n no previously-included directories found matching 'docs/_output'\n adding license file 'LICENSE'\n adding license file 'licenses/LICENSE_APACHE'\n writing manifest file 'src/backports.zoneinfo.egg-info/SOURCES.txt'\n copying src/backports/zoneinfo/__init__.pyi -> build/lib.linux-x86_64-3.10/backports/zoneinfo\n copying src/backports/zoneinfo/py.typed -> build/lib.linux-x86_64-3.10/backports/zoneinfo\n running build_ext\n building 'backports.zoneinfo._czoneinfo' extension\n creating build/temp.linux-x86_64-3.10\n creating build/temp.linux-x86_64-3.10/lib\n 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\n lib/zoneinfo_module.c: In function \xe2\x80\x98zoneinfo_fromutc\xe2\x80\x99:\n lib/zoneinfo_module.c:600:19: error: \xe2\x80\x98_PyLong_One\xe2\x80\x99 undeclared (first use in this function); did you mean \xe2\x80\x98_PyLong_New\xe2\x80\x99?\n 600 | one = _PyLong_One;\n | ^~~~~~~~~~~\n | _PyLong_New\n lib/zoneinfo_module.c:600:19: note: each undeclared identifier is reported only once for each function it appears in\n error: command '/usr/bin/gcc' failed with exit code 1\n ----------------------------------------\n ERROR: Failed building wheel for backports.zoneinfo\n Failed to build backports.zoneinfo\n ERROR: Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects\n ! Push rejected, failed to compile Python app.\n ! Push failed\nRun Code Online (Sandbox Code Playgroud)\n谢谢。
\n小智 119
backports.zoneinfo使用python >= 3.9时避免安装
编辑你的requirements.txt文件
从:
backports.zoneinfo==0.2.1
Run Code Online (Sandbox Code Playgroud)
到:
backports.zoneinfo;python_version<"3.9"
Run Code Online (Sandbox Code Playgroud)
或者:
backports.zoneinfo==0.2.1;python_version<"3.9"
Run Code Online (Sandbox Code Playgroud)
小智 42
我在heroku上部署我的应用程序时遇到了同样的错误,问题实际上是当你在heroku上部署它时,heroku默认使用python版本3.10.x,而backports.zoneinfo在这个版本上无法正常工作,所以我建议您切换到版本 3.8.x(稳定)。
为此,您需要告诉 heroku 切换该版本,可以按如下方式完成:
PS:它为我工作,后来当heroku删除这个错误时,你可以切换到python最新版本。
小智 9
我在创建容器时遇到了同样的错误。我通过使用我的 Python venv ie 3.8.9 的确切版本解决了该错误
之前的图像中,我使用 3.8-alpine 来制作图像的较轻版本。但是,它对我来说不起作用,并且出现了与您相同的错误。
小智 5
在 Mac pro 上尝试和测试:
在终端上检查你的 python 版本
python3 --version
Run Code Online (Sandbox Code Playgroud)
或者
python --version
Run Code Online (Sandbox Code Playgroud)
如果 python 版本为 3.9 及以上,则将“requirements.txt”文件中的以下 (backports.zoneinfo) 行更新为:
跑步 -
pip3 install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
再次测试运行您的应用程序,应该可以在这个阶段工作。
| 归档时间: |
|
| 查看次数: |
92650 次 |
| 最近记录: |