Python 程序无法运行 - psycopg2 重命名警告

rab*_*len 5 python psycopg2

我在 Mac 上,在终端中使用 vagrant。我正在尝试在 python 中运行一个使用 psycopg2 的程序。当我运行“python3 sample.py”时,我不断收到一个错误,即psychopg2 模块不存在。所以我运行了'pip3 install psycopg2'。现在我收到下面的错误,尽管在多个地方阅读了文档,但我无法解决这个问题。所以现在我的程序将无法运行。

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
  """)
Run Code Online (Sandbox Code Playgroud)

Bra*_*och 11

这只是一个警告,您的程序应该仍然可以正常运行。

该警告是包维护者决定停止在 psycopg2 中使用轮包的结果。psycopg2 包现在被设计为从源代码构建,而 psycopg2-binary 维护当前的安装方法,但有一些触发段错误的错误。两个包都提供相同的接口,因此您不需要为任一选项进行任何代码更新。

最简单的解决方案是只安装二进制包,警告就会消失:

pip install psycopg2-binary
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢安装没有段错误错误的版本,使用 --no-binary 标志从源代码安装pip :

pip install --no-binary :all: psycopg2
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 requirements.txt 文件,请添加如下一行:

psycopg2>=2.7,<2.8 --no-binary psycopg2
Run Code Online (Sandbox Code Playgroud)

更新

随着psycopg 2.8的发布,警告和二进制包现在已被删除。您现在需要做的就是正常安装/更新 psycopg2,警告就会消失:

pip install psycopg2
Run Code Online (Sandbox Code Playgroud)

使用requirements.txt:

psycopg2>=2.8
Run Code Online (Sandbox Code Playgroud)

如果您出于任何原因确实想继续使用二进制包,psycopg2-binary 仍然可用。