pypy3导入psycopg2错误(未定义符号:PyCoder_Encoder)

时间:2018-11-16 12:58:09

标签: python-3.x psycopg2 pypy

我在Ubuntu16.04上通过以下代码将psycopg2安装到pypy3(Python3.5.3):

pypy3 -m pip install psycopg2

但是,我遇到了一些错误:

  

错误:b'您需要安装用于构建服务器端扩展的postgresql-server-dev-X.Y或用于构建客户端应用程序的libpq-dev。\ n'

     

/ tmp / pip-install-epd368s6 / psycopg2中的命令“ python setup.py egg_info”失败,错误代码为1

然后我在“ You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application”中找到了解决方案。

我的计算机已经安装了Postgresql9.5,因此我使用以下命令进行安装:

sudo apt-get install libpq-dev
pypy3 -m pip install psycopg2

未报告任何错误,但是当我尝试“导入psycopg2”时,出现了ImportError:

enter image description here

我在“ pypy3 import psycopg2 error (PyCodec_Encoder)”中发现了相同的错误,但没有找到解决方法。

有人知道如何解决吗?

2 个答案:

答案 0 :(得分:2)

psycopg2-binary可与最新版本的PyPy 3.6(从2020年1月23日起每晚进行构建)一起使用,因为它包含PyCodec_Encoder和PyCodec_Decoder实现。

答案 1 :(得分:0)

pointed to的PyPy问题包含答案“有人必须实现缺失的功能(以及其他缺失的PyCodec_ *函数。目前,我们在codec.py中仅实现了很少的实现。根据实现的功能中的模式直接进行,最难的部分是编写测试。

psycopg2cffi package,它可以在PyPy上运行,并且速度更快。如果它可以满足您的需求,请尝试在此处进行评论。