Skip to main content
 首页 » 编程设计

python之virtualenv 中的 IPython Notebook,使用 Python 3.3

2025年05月04日16dyllove98

我设置了 Ubuntu 12.04 系统,这样我就可以使用 Python 2.7 或 Python 3.3 创建一个 virtualenv,并运行 IPython Notebook。问题是,我不确切地知道我对我的系统做了什么来使这成为可能。我正在尝试帮助其他人以相同的方式设置他们的系统,但我不确定我缺少哪些软件包。

在我的系统上,我可以运行以下命令让 IPython Notebook 在 vi​​rtualenv 中运行:

~$ mkdir test_ipython3.3 
~$ cd test_ipython3.3 
~/test_ipython3.3$ virtualenv -p python3.3 venv 
~/test_ipython3.3$ source venv/bin/activate 
(venv)~/test_ipython3.3$ pip install ipython[all]==1.1.0 

我可以使用 virtualenv -p python2.7 venv 执行相同的命令集,并且拥有几乎相同的环境,除了它运行 Python 2.7。

我正在尝试在 virtualbox 上设置 12.04 安装,以便我也可以成功运行这些命令,但我一直失败。在 virtualbox 中构建干净的 Ubuntu 12.04 机器后,我执行以下操作:

# Update machine: 
sudo apt-get update 
sudo apt-get dist-upgrade 
 
# Install Python 3.3: 
sudo apt-get install python-software-properties 
sudo add-apt-repository ppa:fkrull/deadsnakes     
sudo apt-get update     
sudo apt-get install python3.3 
 
# Install virtualenv 
sudo apt-get install python-pip 
sudo pip install pip --upgrade 
sudo pip install virtualenv 
 
# Install necessary packages: 
sudo apt-get install python-dev python3.3-dev libzmq-dev 
 
# Build a venv, using Python 2.7, which works: 
~$ mkdir test_ipython2.7 
~$ cd test_ipython2.7 
~/test_ipython2.7$ virtualenv -p python2.7 venv 
~/test_ipython2.7$ source venv/bin/activate 
(venv)~/test_ipython2.7$ pip install ipython[all]==1.1.0 
(venv)~/test_ipython2.7$ ipython notebook 
# Works, opening an ipynb that runs Python 3.3 
 
# Build a venv, using Python 3.3, which fails: 
~$ mkdir test_ipython3.3 
~$ cd test_ipython3.3 
~/test_ipython3.3$ virtualenv -p python3.3 venv 
~/test_ipython3.3$ source venv/bin/activate 
(venv)~/test_ipython3.3$ pip install ipython[all]==1.1.0 
(venv)~/test_ipython3.3$ ipython notebook 
# Fails, says that ipython is not installed, despite having reported otherwise 

尝试在 3.3 virtualenv 中安装 ipython 后,我收到一条消息,提示 ipython 和一些支持包已成功安装。但是当我尝试运行 ipython 或 ipython notebook 时,我收到一条消息,提示未安装 ipython。观看安装过程并回滚输出,我找不到任何明显的故障。我什至从源代码安装了 zmq,所以我安装了 zmq 4.0.3,ipython 在安装过程中找到了它。

谁能发现我哪里出错了?

请您参考如下方法:

IPython 1.x 在安装 Python 3 时创建后缀为“3”的脚本,以避免与安装 Python 2 的 IPython 发生冲突,因此您需要的命令是:

ipython3 notebook 

在当前开发的 IPython(将是 2.0)中,这种行为有所改变,IPython 安装了非后缀和后缀入口点(ipython 和 ipython3在 Python 3 上,ipython 和 ipython2 在 Python 2 上),遵循其他包(例如 nose)建立的模式。

I'm still quite curious about the best way to install ipython when you want access to a 2.7 interpreter sometimes, and a 3.3 interpreter other times.

有两种处理方法:

首先是在您的 PATH 中非常高优先级的地方创建一个 ipython 脚本(我使用 ~/bin), 内容:

#!/usr/bin/env python 
import IPython 
IPython.start_ipython() 

无论如何,这将在您的 PATH 上使用当前的 python,因此当您激活 Python 3 env 时,ipython 将使用它,等等。

第二种是只使用:

python -m IPython 

或

python3 -m IPython 

这与键入 ipython 相同,但您要明确指定要使用的解释器,因此毫无疑问正在使用什么 Python。