概述:
我有一个带有两个现有Virtualenv环境的项目。一个使用CPython 3.7,另一个使用CPython 3.8。我想添加另一个使用PyPy的解释器。目前,我已经将Python3.8指定为我的路径Python可执行文件。我在Windows10上运行PyCharm专业2020.3。
工作CPython工作流:
我转到"Settings“、"Project: xx”、"Python解释器“。然后,在下拉菜单下,我选择了“显示全部”。然后单击加号,在"Virtualenv环境“下列出了"Location”项目目录中的一个新文件夹名,并导航到我的python可执行文件之一,用于"Base解释器“。然后单击"OK",PyCharm将为我创建一个新的Virtualenv。
尝试PyPy工作流:
我首先从下面高亮显示的链接下载PyPy并将其解压缩到桌面上,这是这里。

然后,我将提取的文件夹复制到我的C:\\Users\xx\AppData\Local\Programs\文件夹中,因此它与我的其他解释器位于同一个位置。然后,我尝试复制CPython工作流来设置PyPy Virtualenv环境。这失败了,因为在最后一步之后,Python会生成以下错误消息:
Error: Command '['C:\\Users\\xx\\Documents\\GitHub\\xx\\venvTest\\Scripts\\pypy3.exe', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 2.我不明白这个错误,所以我环顾四周,发现了链接到文档的这个问题。PyPy似乎只能用作PyCharm的系统解释器。因此,我尝试转到“设置”、"Project: xx“、"Python解释器”。然后,在下拉菜单下,我选择了“显示全部”。然后单击加号,在“系统解释器”下,导航到“解释器”的"pypy3.exe“文件。然后单击"OK",PyCharm为我创建了一个新的解释器。
PyPy解释器问题:
现在,在“设置”、“设置”、“项目: xx”、"Python解释器“中,我从下拉菜单中选择了PyPy解释器。出现了一个警告:我没有安装python打包工具,所以我点击了链接来安装它们。他们安装并欢迎我使用以下软件包:

到目前为止,一切都还好,所以我点击加号,搜索NumPy,然后尝试安装它。然后,PyCharm开始安装它,我注意到这需要花费很长时间。您看,大约15分钟后,安装失败,错误如下:
ERROR: Command errored out with exit status 1: 'C:\Users\xx\AppData\Local\Programs\pypy3.7-v7.3.3-win32\pypy3.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\xx\\AppData\\Local\\Temp\\pip-install-wx4cbjwv\\numpy_bf6ea1d419434c2e9caea46adf58b45c\\setup.py'"'"'; __file__='"'"'C:\\Users\\xx\\AppData\\Local\\Temp\\pip-install-wx4cbjwv\\numpy_bf6ea1d419434c2e9caea46adf58b45c\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\xx\AppData\Local\Temp\pip-record-y9bh74bh\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\xx\AppData\Local\Programs\pypy3.7-v7.3.3-win32\include\numpy' Check the logs for full command output.我不知道如何解释这个命令,我也不知道如何继续。
最新尝试:
根据朱皮特比吉的答案,我尝试用PyPy的3.6版本重复我的过程。当我试图使它成为虚拟环境或系统解释器时,它产生了与3.7相同的结果。
发布于 2021-03-22 06:15:47
作为PyPy发布经理,我不同意@jupiterbjy。请使用PyPy 3.7,3.6版本正在逐步淘汰。
安装NumPy花了很长时间是因为它是从源代码编译的: NumPy目前没有在windows上为PyPy提供二进制包(在PyPy中称为“轮子”)。它确实为Linux提供了它们。
使用NumPy和windows上的32位PyPy的最佳选择是手动从https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy安装预编译轮。为此,您应该安装numpy-1.20.1+mkl-pp37-pypy37_pp73-win32.whl,它是为PyPy3.7构建的。
如果NumPy是您所需要的,也许您可以管理。但是不要期望NumPy编程使用PyPy会更快,它是使用NumPy编写的,这会减慢PyPy的速度。
我们从conda和linux获得了更好的生态系统支持,如果您通过WSL使用,您会发现大多数二进制包都被支持,而不需要编译它们。
发布于 2021-03-21 04:59:18
如果您使用pypy3.7,尝试使用pypy3.6,直接从您使用的任何终端使用pip模块。
pypy3 -m pip install numpyC:\pypy3.6-v7.3.3>pypy3 -m pip install numpy
Collecting numpy
Downloading numpy-1.19.5.zip (7.3 MB)
|################################| 7.3 MB 6.4 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: numpy
Building wheel for numpy (PEP 517) ... done
Created wheel for numpy: filename=numpy-1.19.5-pp36-pypy36_pp73-win32.whl size=4511302 sha256=7a7b77a0d820f96200eec66e1bc8e8e05c61bf2591689ad6fdcb
2a002b265176
Stored in directory: c:\users\jupiterbjy\appdata\local\pip\cache\wheels\97\ac\fc\fbf42c6cd047a8f16c5dba00480027d4e566f8ca8a34e79ad6
Successfully built numpy
Installing collected packages: numpy
WARNING: The script f2py.exe is installed in 'C:\pypy3.6-v7.3.3\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed numpy-1.19.5我也没有以任何方式安装pypy3.7 --因为3.7仍在开发中(基于3.6 ),它可能不像您所期望的那样兼容。
如果使用3.7是强制性的,您可能需要查看这个官方文件,以获得其他与pypy兼容的numpy分支/repos--但我怀疑这是否能够满足其他numpy相关模块的依赖关系。
https://stackoverflow.com/questions/66728758
复制相似问题