最近,我正在通过《FlaskWeb开发》一书学习Flask。当我完成代码并将其部署到Heroku时,发生了以下错误:
ImportError: /app/.heroku/python/lib/python3.6/
sitepackages/psycopg2/.libs/libresolv-2-c4c53def.5.so:
symbol __res_maybe_init version GLIBC_PRIVATE not defined
in file libc.so.6 with link time reference
不过,这在当地很管用。我搜索了关于psycopg2
的相关问题,并调整了psycopg2
的版本,但仍然发生同样的错误。请问,我怎么解决这个问题?在
我也有同样的问题。我通过强制heroku清理python虚拟环境并使用
psycopg2>=2.7,<2.8 no-binary psycopg2
重新安装requirements.txt
文件来解决这个问题。我必须承认,这感觉有点像魔术,但我所采取的步骤是值得的:heroku login
登录到heroku。在venv/Scripts/pip freeze > requirements.txt
更新了我的requirements.txt
。您可能需要找到自己的python/虚拟环境路径。在psycopg2
的行/条目改为psycopg2>=2.7,<2.8 no-binary psycopg2
。在requirements.txt
文件的所有内容保存到桌面上,确保项目文件夹中的内容为空。不确定这一步是否必要。但我就是这么做的,所以我就在这里提一下。在heroku apps:info -a blogglistene
来查找我的heroku堆栈的版本,对我来说是heroku-18
。在heroku-18
支持的python版本。它说默认值是python-3.6.6
(然后我假设它就是我正在运行的那个),以及其他一些。在python-2.7.15
,并将该文本添加到一个runtime.txt
文件中,该文件位于我项目文件夹的根目录下。在runtime.txt
的内容恢复为python-3.6.6
的默认值,并重新添加了requirements.txt
文件的内容,确保我所做的更改在那里。在相关问题 更多 >
编程相关推荐