python - 使用 PyPy 作为 PyCharm 的解释器

标签 python pycharm virtualenv pypy

概述:
我有一个包含两个现有 Virtualenv 环境的项目。一种使用 CPython 3.7,一种使用 CPython 3.8。我想添加另一个使用 PyPy 的解释器。目前,我将 Python 3.8 指定为我的 PATH python 可执行文件。我在 Windows 10 上运行 PyCharm Professional 2020.3。
工作 CPython 工作流程:
我去“设置”,“项目:xx”,“Python解释器”。然后,在下拉菜单下,我选择了“全部显示”。然后我单击加号,并在“Virtualenv Environment”下为“Location”在项目目录中列出了一个新文件夹名称,并导航到“Base Interpreter”的我的python可执行文件之一。然后我单击“确定”,PyCharm 为我创建了一个新的 Virtualenv。
尝试的 PyPy 工作流程:
我首先从下面突出显示的链接下载 PyPy 并将其提取到我的桌面,该链接位于 here
enter image description here
然后,我将提取的文件夹复制到我的 C:\\Users\xx\AppData\Local\Programs\ 文件夹中,因此它与我的其他 Python 解释器位于同一个位置。然后,我尝试复制 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.
我不明白这个错误,所以我环顾四周,发现 this question 链接到文档。 PyPy 似乎只能用作 PyCharm 的系统解释器。所以,我试着去“设置”、“项目:xx”、“Python解释器”。然后,在下拉菜单下,我选择了“全部显示”。然后我单击加号,在“系统解释器”下,导航到“解释器”的“pypy3.exe”文件。然后我单击“确定”,PyCharm 为我创建了一个新的解释器。
PyPy 解释器问题:
现在,在“设置”、“设置”、“项目:xx”、“Python 解释器”中,我从下拉菜单中选择了 PyPy 解释器。出现警告说我没有安装 python 打包工具,所以我点击链接安装它们。他们安装,我收到以下软件包:
enter image description here
到目前为止一切都很好,所以我单击加号,搜索 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.
我不知道如何解释这个命令,也不知道如何进行。
更新的尝试:
根据 jupiterbjy's answer ,我尝试使用 PyPy 的 3.6 版本重复我的过程。当我尝试将其设置为 virtualenv 环境或系统解释器时,它产生了与 3.7 相同的结果。

最佳答案

作为 PyPy 发布经理,我不同意 @jupiterbjy。请使用 PyPy 3.7,3.6 版本正在逐步淘汰。
安装 NumPy 需要很长时间的原因是它是从源代码编译的:NumPy 目前不为 Windows 上的 PyPy 提供二进制包(在 Python 中称为“轮子”)。它确实有它们用于 Linux。
在 Windows 上使用 NumPy 和 32 位 PyPy 的最佳选择是手动安装 https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 中的预编译轮。 .为此,您应该安装为 PyPy3.7 构建的 numpy‑1.20.1+mkl‑pp37‑pypy37_pp73‑win32.whl。
如果您只需要 NumPy,也许您可​​以管理。但是不要指望 NumPy 编程使用 PyPy 会更快,它是使用 C-API 编写的,这会减慢 PyPy 的速度。
我们从 conda and linux 获得了更好的生态系统支持,如果您通过 WSL 使用 Windows 内部 Linux 支持,您会发现大多数二进制包都受支持,无需编译它们。

关于python - 使用 PyPy 作为 PyCharm 的解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66728758/

相关文章:

python-3.x - 让 PyC​​harm 将字符串识别为路径

python - 如何在Python3.6上使用virtualenv在mac上安装psycopg2?

python - sympy 中生成器数量未知的多项式环

python - 关于未解析的属性引用的 Pycharm 视觉警告

python - 如何在以元组形式返回的函数中获取字符串参数

python - venv 不创建激活脚本 python3

python - 创建在 python virtualenv 中执行命令的 docker 镜像

php - 从各种语言的源代码中删除/剥离所有注释的通用实用程序?

python - PyCharm Jupyter 笔记本 : Add Jupyter to the interpreter of the current project

django - PyCharm:在选定的解释器中找不到 Sphinx