【发布时间】:2021-06-18 01:51:14
【问题描述】:
概述:
我有一个包含两个现有 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。
然后我将提取的文件夹复制到我的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 打包工具,所以我点击链接安装它们。他们安装,我收到以下软件包: 到目前为止一切正常,所以我单击加号,搜索 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 相同的结果。
【问题讨论】:
-
为了测试这一点,我分别使用了新的 pypy3.6 和 3.7,它们位于 C: 驱动器内,因为 venv 无论如何都不会像你提到的那样工作。您能否更详细地解释您的第二次尝试 - 例如,您是单击“+”安装还是使用命令、文件夹放置等?
-
@jupiterbjy 当然!我还使用了新的 PyPy 下载。我把它们放在我的桌面上而不是我的 C: 驱动器上,但我不明白这会有什么不同。我不知道如何使用该命令安装 NumPy,所以我点击了“+”。当我尝试运行时: pypy3 -m pip install NumPy 我收到“pypy3 不是可识别的命令”错误。我应该如何解决这个问题?另外,你知道为什么 PyPy 不能在 virtualenv 中工作吗?这将是理想的解决方案。
-
确保移动到pypy3.exe文件所在的位置!由于 PATH 环境变量中没有列出 pypy3.exe,因此无法直接调用 pypy3,因此必须使用
cd命令移入终端目录。 -
我不确定 venv,我确实找到了一个十年前的帖子,说有些版本可以工作,有些不可以 - 也找不到关于这个问题的最新帖子。
标签: python pycharm virtualenv pypy