是否可以在 Jupyter notebook 中 运行 一个 pypy 内核?

Is it possible to run a pypy kernel in the Jupyter notebook?

我一直想知道是否可以在 Jupyter notebook 中 运行 PyPy。我最近尝试在我的本地机器上安装 PyPy,它 运行 非常好 - 在纯 Python 编写的基于代理的模拟中加速了 100 倍。但是,我怀念 Jupyter notebook 中的交互性。是否可以使 IPython 内核使用 PyPy 而不是 CPython?

你可以用pypy安装Jupyter:

pypy-pip install jupyter

Mac OS X 上有问题。如果安装失败,请抱怨 gnureadline。试试这个:

pypy-pip install --no-deps jupyter

开始于:

pypy-ipython notebook

我的 pypy-ipython 看起来像这样:

#!/usr/local/bin/pypy

# -*- coding: utf-8 -*-
import re
import sys

from IPython import start_ipython

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(start_ipython())

在笔记本中:

In [1]: import sys

In [2]: sys.version

Out[2]:

'2.7.9 (295ee98b6928, May 31 2015, 07:28:49)\n[PyPy 2.6.0 with GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]'

笔记本需要 Python 2.7 或 3.3+。 Python3.3 的 PyPy 应该很快就会出来。

我的 pypy-pip 这个可执行文件 /usr/local/bin//pypy-pip 具有以下内容:

#!/usr/local/bin/pypy
# EASY-INSTALL-ENTRY-SCRIPT: 'pip','console_scripts','pip'
__requires__ = 'pip'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pip', 'console_scripts', 'pip')()
    )

假设您有 system-wide/用户安装 jupyter。您可以关注:

pypy3 -m venv PyPy3
source PyPy3/bin/activate  # in POSIX, or...
PyPy3\Scripts\activate.bat  # in Windows
pypy3 -m pip install ipykernel
ipython kernel install --user --name=PyPy3

现在退出虚拟环境并验证安装:

jupyter kernelspec list

打开 Jupyter 笔记本或实验室界面。

第一个答案在 Ubuntu 上对我很有效,但在 Fedora 上不起作用 - zeromq 编译失败

根据第一个答案,以下对我有用:

$ cd <portable-pypy-directory>
$ bin/python3 virtualenv/virtualenv.py <new-venv-dir>
$ <new-venv-dir>/bin/activate
$ pip install jupyter
$ ipython kernel install --user --name=PyPy3

也许我们可以关注 official doc:

pypy3 -m pip install ipykernel
pypy3 -m ipykernel install --user

(在 Ubuntu Linux 中测试)
要安装 pypy,请创建一个虚拟环境和 运行 jupyter notebook,就像 python:
下载 pypy 版本(此处为 3.8 示例)
在终端 运行 中执行以下命令 解压缩

tar xf pypy3.8-v7.3.9-linux64.tar.bz2 

升级 pip 和 wheel

./pypy3.8-v7.3.9-linux64/bin/pypy -m ensurepip --default-pip
./pypy3.8-v7.3.9-linux64/bin/pypy -mpip install -U pip wheel

创建虚拟环境以下方式很关键

./pypy3.8-v7.3.9-linux64/bin/pypy -m venv my-pypy-env   

激活环境

source my-pypy-env/bin/activate

pip 安装 jupyter 和任何其他库

pip install jupyter

像往常一样打开 jupyter

jupyter notebook