在Python virtualenv中安装numpy

时间:2013-09-13 11:20:01

标签: python ubuntu numpy virtualenv

我在Ubuntu 13.04上为Python 2.7.4创建了virtualenv。我安装了python-dev。

我在virtualenv中安装numpy时有the error

也许,你有任何想法要解决吗?

7 个答案:

答案 0 :(得分:29)

问题是SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.

为了获得'Python.h',请执行以下操作

确保apt-get和gcc是最新的

sudo apt-get update    
sudo apt-get upgrade gcc

然后安装python2.7-dev

sudo apt-get install python2.7-dev

我发现你很可能已经完成了上述事情。

pip最终会因为无法写入/user/bin/blahBlah/dist-packages/或类似的东西而吐出另一个错误,因为它无法弄清楚它应该在活动的env中安装你的desiredPackage(例如numpy)(由virtualenv创建的env,你甚至可以在执行所有这些操作时将目录更改为

这样做:

pip -E /some/path/env install desiredPackage

应该完成工作......希望:)

<强> --- ---编辑

从PIP版本1.1开始,命令pip -E不起作用。以下是1.1版(https://pip.pypa.io/en/latest/news.html

的发行说明的摘录

删除了-E/--environment选项和PIP_RESPECT_VIRTUALENV;两者都使用了一个破坏的重新启动机制,并且没有一个是有用的,因为每个virtualenv现在都有pip。将pip -E path/to/venv install Foo替换为virtualenv path/to/venv && path/to/venv/pip install Foo

答案 1 :(得分:20)

如果您使用的是Python3,则需要sudo apt-get install python3-dev。我花了一点时间才弄明白。

答案 2 :(得分:12)

即使您已经安装了所有操作系统依赖项(python-devel,fortran编译器等),但如果您遇到此问题,则问题可能与以下错误有关: "numpy installation thru install_requires directive issue..."

解决方法是在运行setup.py之前在您的(虚拟)环境中手动安装numpy,以安装依赖于numpy的任何要安装的内容。

例如,pip install numpy然后python ./setup.py install

答案 3 :(得分:3)

这个答案适用于我们这些从源代码编译python或将其安装到非标准目录的人。在我的例子中,python2.7安装到/ usr / local,包含文件安装到/usr/local/include/python2.7

C_INCLUDE_PATH=/usr/local/include/python2.7:$C_INCLUDE_PATH pip install numpy

答案 4 :(得分:3)

我最近遇到了同样的问题。我运行Debian Jessie并尝试从Python 2.7.9 virtualenv安装numpy。我得到了同样的错误 - numpy抱怨Python.h缺失而python2.7-dev和gcc已经安装。

AsyncTask

我正在运行pip 1.5.6,它似乎没有命令行选项'-E'

File "numpy/core/setup.py", line 42, in check_types
],
File "numpy/core/setup.py", line 293, in check_types

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.

将pip升级到最新版本7.0.3解决了问题

$ pip -V
pip 1.5.6 from /home/alex/.virtualenvs/myenv/local/lib/python2.7/site-  packages (python 2.7)

现在可以安装numpy

$ pip install --upgrade pip
Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.0.3-py2.py3-none-any.whl#md5=6950e1d775fea7ea50af690f72589dbd
Downloading pip-7.0.3-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Found existing installation: pip 1.5.6
Uninstalling pip:
  Successfully uninstalled pip
Successfully installed pip
Cleaning up...

答案 5 :(得分:2)

这可能是因为您没有安装python-dev软件包。您可以这样安装:

sudo apt-get install python-dev

您也可以通过软件中心安装它:

enter image description here

答案 6 :(得分:2)

@ samkhan13解决方案对我不起作用,因为pip表示它没有-E选项。 我仍然得到同样的错误,但对我来说有用的是安装matplotlib,它安装了numpy。