如何在Anaconda中安装PyPy

25

我有一台Linux-64位的机器。我该如何在我的anaconda环境中安装PyPy?我尝试运行"conda install pypy",但系统提示没有可用的软件包。pip install pypy也返回了类似的信息。难道安装PyPy的唯一方法就是从官网下载tar.gz文件吗?安装完成后,我该如何配置Anaconda环境,以便在需要时能够切换到其他Python实现?


我认为这是不可能的。请记住,pypy 不仅仅是扩展 Python 的某个包,而是纯 Python 实现的 Python 解释器的全新实现。许多科学包栈的根(例如 numpyscipy)尚未(?)完全支持 pypy。因此,据我所知,在科学 Python 社区中,pypy 并没有被广泛采用。我认为在不久的将来不会有解决方案。 - cel
2
@cel 请注意,conda是一个与Python无关的软件包管理器(例如,您可以通过conda软件包安装R,同样也应该可以为pypy做到这一点。但是,必须有人首先编写配方,构建它并使其可用)。 - jorgeca
5个回答

20

conda-forge现在支持在conda环境中使用PyPy3.6作为Python解释器(详见官方博客文章):

conda config --set channel_priority strict
conda create -n pypy pypy
conda activate pypy

然后像使用常规的python可执行文件一样使用它(注意,这是一个不同的Python解释器,而不是一个包)

pypy3 -c"import sys; print(sys.version)"

它适用于Linux和OSX。


3
在这种情况下,例如使用pip,您如何安装软件包? - lorenzo
1
@lorenzo 使用pypy3 -m pip install [package]安装包。 - Yeti
2
似乎没有针对 Windows 的构建。 - bj0
3
@Yeti 在执行 pypy3 -m ensurepip 后才能使用此方法。 - mbarkhau

9

注意: conda-pypy已经被归档,此答案已过期,conda-forge正在制作PyPy软件包。您应该使用它。

GitHub上维护了一种替代方法,由Riccardo Vianello维护:

https://github.com/rvianello/conda-pypy

它基本上涉及使用他的conda渠道而不是默认渠道来安装必要的软件包。提供了一些基本的软件包。


3
除了Ohad的回答外,首先创建一个新的环境来承载pypy。按照以下方式操作,PyPy无法在我的基本配置中安装:
conda create -n <newenviromnentname>

进入环境

conda activate <newenviromnentname>

安装pypy到环境中

conda install -c conda-forge pypy3.6 

然后继续安装您需要的其他软件包。


0
截至2021年,Pypy 3.7支持Python 3.7。 进入conda环境 输入> conda install -c conda-forge pypy3.7(确保您使用的是py 3.7)
(pypy37) C:\Users\UserName>conda install -c conda-forge pypy3.7
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.10.1
  latest version: 4.10.3

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: C:\Users\Dios Dole\.conda\envs\pypy37

  added / updated specs:
    - pypy3.7


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    bzip2-1.0.8                |       h8ffe710_4         149 KB  conda-forge
    ca-certificates-2021.5.30  |       h5b45459_0         171 KB  conda-forge
    certifi-2021.5.30          |   py37h4c0cbd9_0         142 KB  conda-forge
    expat-2.4.1                |       h39d44d4_0         279 KB  conda-forge
    libffi-3.3                 |       h0e60522_2          37 KB  conda-forge
    openssl-1.1.1k             |       h8ffe710_0         5.7 MB  conda-forge
    pypy3.7-7.3.5              |       hb504520_5        31.1 MB  conda-forge
    python-3.7.10              |        1_73_pypy           5 KB  conda-forge
    python_abi-3.7             |    2_pypy37_pp73           4 KB  conda-forge
    tk-8.6.10                  |       h8ffe710_1         3.2 MB  conda-forge
    xz-5.2.5                   |       h62dcd97_1         211 KB  conda-forge
    zlib-1.2.11                |    h62dcd97_1010         126 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        41.2 MB

The following NEW packages will be INSTALLED:

  bzip2              conda-forge/win-64::bzip2-1.0.8-h8ffe710_4
  expat              conda-forge/win-64::expat-2.4.1-h39d44d4_0
  libffi             conda-forge/win-64::libffi-3.3-h0e60522_2
  pypy3.7            conda-forge/win-64::pypy3.7-7.3.5-hb504520_5
  python_abi         conda-forge/win-64::python_abi-3.7-2_pypy37_pp73
  tk                 conda-forge/win-64::tk-8.6.10-h8ffe710_1
  xz                 conda-forge/win-64::xz-5.2.5-h62dcd97_1
  zlib               conda-forge/win-64::zlib-1.2.11-h62dcd97_1010

The following packages will be UPDATED:

  python                pkgs/main::python-3.7.10-h6244533_0 --> conda-forge::python-3.7.10-1_73_pypy

The following packages will be SUPERSEDED by a higher-priority channel:

  ca-certificates    pkgs/main::ca-certificates-2021.7.5-h~ --> conda-forge::ca-certificates-2021.5.30-h5b45459_0
  certifi            pkgs/main::certifi-2021.5.30-py37haa9~ --> conda-forge::certifi-2021.5.30-py37h4c0cbd9_0
  openssl              pkgs/main::openssl-1.1.1k-h2bbff1b_0 --> conda-forge::openssl-1.1.1k-h8ffe710_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
ca-certificates-2021 | 171 KB    | ####################################################################################################################################################################### | 100%
python_abi-3.7       | 4 KB      | ####################################################################################################################################################################### | 100%
python-3.7.10        | 5 KB      | ####################################################################################################################################################################### | 100%
expat-2.4.1          | 279 KB    | ####################################################################################################################################################################### | 100%
certifi-2021.5.30    | 142 KB    | ####################################################################################################################################################################### | 100%
bzip2-1.0.8          | 149 KB    | ####################################################################################################################################################################### | 100%
libffi-3.3           | 37 KB     | ####################################################################################################################################################################### | 100%
tk-8.6.10            | 3.2 MB    | ####################################################################################################################################################################### | 100%
xz-5.2.5             | 211 KB    | ####################################################################################################################################################################### | 100%
zlib-1.2.11          | 126 KB    | ####################################################################################################################################################################### | 100%
pypy3.7-7.3.5        | 31.1 MB   | ####################################################################################################################################################################### | 100%
openssl-1.1.1k       | 5.7 MB    | ####################################################################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

之后检查 输入> pypy --version

(pypy37) C:\Users\UserName>pypy --version
Python 3.7.10 (77787b8f4c49115346d1e9cbaf48734137417738, Jul 18 2021, 08:38:15)
[PyPy 7.3.5 with MSC v.1916 64 bit (AMD64)]

-1

关于Puppy的版本支持,请访问http://pypy.org/download.html

它是特定分发的,如果您没有受支持的分发,可以尝试使用构建选项。

如果没有更多关于您的Linux和Python版本的信息,很难添加更多内容。


我目前正在使用Python 2.7.9 | Anaconda 2.1.0 (64位) 操作系统:Linux 3.5.0-54-generic x86_64当我尝试运行任何Python程序时,当前运行的是这个版本。我想要运行PyPy而不是这个版本。 - Menezes Sousa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接