如何创建使用PyPy的Conda环境?

Bas*_*ien 6 python pypy conda

所以这是我的问题。我设法通过以下命令使用conda安装PyPy:

conda install -c conda-forge pypy3.5
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试创建使用此pypy3可执行文件的环境时,我找不到解决方法。如果我运行pypy3,我会得到PyPy shell没有任何问题,我也可以使用pypy3代替来运行我的程序python

尽管现在,我希望能够使用PyPy创建完整的环境。我曾尝试过以下类似的事情:

conda create -n pypy3 python=pypy3
conda create -n pypy3 python=pypy3 -c conda-forge
Run Code Online (Sandbox Code Playgroud)

我尝试指定pypy3.5和其他变体,但没有任何效果。我可以在Miniconda安装箱中看到pypy3可执行文件,但找不到Conda使用它的方法。我在互联网上找不到很多东西,因为人们似乎只是在要求通过Conda安装PyPy,而与使用PyPy创建环境无关。

所以这是我的问题:

  • 是否已经有一种使用PyPy而非常规CPython创建Conda环境的方法?
  • 有没有一种方法可以迫使Conda在本地优先查看,而不是在线检查发行版?
  • 使用Conda创建环境时,是否有一种方法可以强制将可执行文件用作Python?
  • 创建常规环境,然后强迫该环境指向我的pypy3可执行文件时,会有肮脏的解决方法吗?

我不知道是否有人可以在这里提供帮助。也许解决方案已经存在,但无论如何我都找不到很多解决方案。

编辑:根据@darthbith的建议,我可以使用以下命令:

conda create -n pypy3 -c conda-forge pypy3.5
Run Code Online (Sandbox Code Playgroud)

但这并没有达到我的预期。我可以用pypy3用来获取外壳程序并执行我的Python程序,但不能将其作为常规Python版本处理。我想让PyPy像任何版本的Python一样被考虑,并能够使用pip安装软件包(大多数纯Python软件包应与PyPy一起使用)。

我知道很多人会建议我不要在这里做什么,但是我认为它只是Python的更快版本,适用于任何不依赖C库的东西。由于我正在使用纯Python库,而PyPi中的许多库都是用纯Python编写的,所以我不明白为什么我无法在这里实现我想做的事情。

mat*_*tip 12

Conda 现在更顺畅地支持 PyPy。

conda config --set channel_priority strict
conda create -c conda-forge -n pypy pypy
conda activate pypy
Run Code Online (Sandbox Code Playgroud)

为 pypy 构建 conda 包还有很多工作要做,但已经有很多兼容性。例如,

conda install mpmath
conda install numpy
Run Code Online (Sandbox Code Playgroud)

现在都工作。

参考:https : //conda-forge.org/blog/posts/2020-03-10-pypy

另请注意,此处描述了将 pip 与 pypy 一起使用的官方建议,其要点是:

最佳做法pip是始终将其称为<python> -mpip ...,但如果您希望能够pip直接从命令行调用,则必须调用pypy -mensurepip --default-pip.


trb*_*bck 8

像这样为我工作:

conda create -n pypy3 -c conda-forge pypy3.5
Run Code Online (Sandbox Code Playgroud)

之后,您必须链接到env 的 bin 目录中的pypy3 解释器

ln -s pypy3 python
Run Code Online (Sandbox Code Playgroud)


Spc*_*ond 4

可能无法完全达到您想要的效果,但这就是我所做的:

创建一个新的 conda 环境

conda create --name pypy_env
conda activate pypy_env
Run Code Online (Sandbox Code Playgroud)

使用 conda 安装 pypy3

conda install pypy3
Run Code Online (Sandbox Code Playgroud)

使用此处的方法获取 pypy3 的 Pip在 pypy 上安装 pip

使用 pypy 安装包

pypy3 -m pip install <name_of_package>
Run Code Online (Sandbox Code Playgroud)

对于某些软件包,使用预构建的 pypy 轮文件更容易,您可以在这里找到一些软件包https://www.lfd.uci.edu/~gohlke/pythonlibs/