在Virtualenv环境中安装python-numpy

use*_*756 8 python numpy virtualenv ubuntu-12.04

我想在Virtualenv环境中安装python-numpy.我的系统是Ubuntu 12.04,我的python是2.7.5.首先我安装了Virtualenv

$ sudo apt-get install python-virtualenv
Run Code Online (Sandbox Code Playgroud)

然后通过建立一个环境

$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.
Run Code Online (Sandbox Code Playgroud)

激活它

$ . venv/bin/activate
Run Code Online (Sandbox Code Playgroud)

在环境中安装了python-numpy

$ sudo apt-get install python-numpy
Run Code Online (Sandbox Code Playgroud)

但是,我尝试在完成上述所有步骤后在环境中导入python中的numpy.Python告诉我"没有名为numpy的模块".然而,numpy可以在全球范围内导入Python.我试图删除和安装很多次,但它不起作用.我是Python和Linux的初学者.

ali*_*i_m 5

apt-get仍然会在全球安装模块,即使你在新的模块中也是如此virtualenv.

您应该pip install numpy在虚拟环境中使用(最简单的方法),或者numpy使用setup.py源目录的根目录中的文件进行编译和安装(稍微更难,请参见此处).

我还建议您仔细阅读virtualenvwrapper,这使得管理虚拟环境更加友好.

编辑:

应该使用sudo它来创建虚拟环境或在其中安装内容 - 它是您的主文件夹中的目录,您不需要提升权限来对其进行更改.如果您使用sudo,pip将更改您的全局站点包,而不是您的虚拟环境,因此您无法在numpy本地安装.

另一件需要考虑的事情是,默认情况下,new virtualenvs将从全局继承site-packages- 即如果Python无法在您的本地找到模块virtualenv,Python也将查找您的全局站点包 *.在您的情况下,由于您已经numpy全局安装(使用apt-get),当您尝试pip install numpy在虚拟环境中时,pip看到它numpy已经在您的Python路径中并且不在本地安装它.

你可以:

  1. --no-site-packages创建时通过该选项virtualenv.这可以防止新virtualenv的继承自全局站点包,因此必须在本地安装所有内容.

  2. 强制pipnumpy本地安装/升级,例如使用pip install -U --force numpy


* 从v1.7开始,默认行为virtualenv是不包括全局site-packages目录.您可以--system-site-packages在创建新虚拟环境时通过传递标记来覆盖它.