我想加快我的程序速度,所以我尝试设置 pypy + psycopg2cffi。 该程序打开一个 xml,解析它,然后将一些数据插入数据库。 我目前正在使用 python3、postgresql 和 psycopg2,但这种方法确实很慢。 所以我想尝试使用 pypy + psycopg2cffi 运行我的程序。 我有 python 3 和 pypy,我想安装 psycopg2cffi 所以我运行了这个命令:
pip install psycopg2cffi psycopg2cffi-compat
但是 psycopg2cffi 仅安装在 python 上,因为当我尝试在 pypy 上导入 psycopg2cffi 时,这是我得到的错误:
ImportError: No module named psycopg2cffi
所以我想我需要先安装 pip,但我可以弄清楚如何做到这一点。
如何在 pypy 上安装它? 谢谢你。
您也可以尝试这个(如果您的 Linux 发行版中没有禁用它):
pypy -m ensurepip
下载 pip-installer 并使用 pypy 执行它:
wget https://bootstrap.pypa.io/get-pip.py
./pypy get-pip.py
对于使用尝试,
pypy -m pip install validators
对我来说,“pypy -m Ensurepip”不适用于在 Kubuntu 20.04 下使用 apt-get 安装的 pypy3。可能在存储库中被禁用,正如 @SebMa 答案中的评论点。我试图使用 pypy3 运行 sympy,所以我需要 pip 与 pypy3 一起使用。我设法让它与通过 Anaconda 安装的 pypy3 一起工作:
conda config --set channel_priority strict
conda create -n pypy3 -c conda-forge pypy3.6
conda activate pypy3
pypy3 -m ensurepip
pypy3 -m pip install sympy
这个问题及其答案也很有帮助:如何创建使用 PyPy 的 Conda 环境?
我通过
安装了pipwget https://bootstrap.pypa.io/get-pip.py
pypy3 get-pip.py
然后
pypy3 -m pip install "module"
解决了我的问题。 @kleite 比x
我在 Ubuntu 22.04 上使用 pip 和 pypy3。安装“python3-pip”包似乎可以解决问题。
# apt update && \
apt install software-properties-common && \
add-apt-repository ppa:pypy/ppa && \
apt install pypy3
# pypy3 --version
Python 3.9.19 (7.3.16+dfsg-2~ppa1~ubuntu22.04, Apr 26 2024, 13:22:45)
[PyPy 7.3.16 with GCC 11.4.0]
# python3 --version
Python 3.10.12
“python3”是“software-properties-common”的依赖项。
我以为“pypy3-pip”包存在,但是:
# apt install pypy3-pip
E: Unable to locate package pypy3-pip
所以我尝试了“python3-pip”:
# apt install python3-pip
# pypy3 -m pip --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.9)
# python3 -m pip --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
/usr/lib/python3/dist-packages/*
目录是否与python3和pypy3共享?我不知道。
然后部署一个“venv”并在其中安装包及其依赖项:
# apt install pypy3-venv && \
pypy3 -m venv .venv && \
source .venv/bin/activate
(.venv)
# which pypy3 python3 pip3 && pip3 --version
/.venv/bin/pypy3
/.venv/bin/python3
/.venv/bin/pip3
pip 22.0.2 from /.venv/lib/pypy3.9/site-packages/pip (python 3.9)
(.venv)
# apt install libpq-dev pypy3-dev && \
pip3 install psycopg2cffi psycopg2cffi-compat && \
pip3 list
...
Successfully installed psycopg2cffi-2.9.0 psycopg2cffi-compat-1.1 ...
Package Version
------------------- -----------
...
psycopg2cffi 2.9.0
psycopg2cffi-compat 1.1
...
最后,导入“psycopg2cffi”:
(.venv)
# pypy3 -c 'import psycopg2cffi'; echo $?
0
# deactivate
# pypy3 -c 'import psycopg2cffi'; echo $?
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2cffi'
1
.