21

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

在 virtualenv 中安装 numpy 时出现错误。

也许,你有什么想法要解决?

4

7 回答 7

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/或类似的东西而吐出另一个错误,因为它无法确定它应该在活动环境中安装您想要的包(例如 numpy)(由 virtualenv 创建的环境,您可能甚至在执行所有这些操作时将目录更改为)

这样做:

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; 两者都使用了已损坏的在 venv 中重新启动机制,并且没有一个是有用的,因为现在每个 virtualenv 里面都有 pip 。替换pip -E path/to/venv install Foovirtualenv path/to/venv && path/to/venv/pip install Foo

于 2013-11-09T10:40:49.773 回答
20

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

于 2014-05-23T14:27:24.183 回答
13

如果您在安装了所有操作系统依赖项(python-devel、fortran 编译器等)后仍遇到此问题,则该问题可能与以下错误有关: “numpy installation thru install_requires 指令问题...”

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

例如,pip install numpy那么python ./setup.py install

于 2014-06-16T10:34:10.553 回答
4

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

C_INCLUDE_PATH=/usr/local/include/python2.7:$C_INCLUDE_PATH pip install numpy
于 2015-06-11T15:39:10.543 回答
4

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

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 1.5.6,但它似乎没有命令行选项“-E”

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

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

$ 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...

现在可以安装 numpy

$ pip install numpy
Collecting numpy
Downloading numpy-1.9.2.tar.gz (4.0MB)
100% |████████████████████████████████| 4.0MB 61kB/s
Installing collected packages: numpy
Running setup.py install for numpy

Successfully installed numpy-1.9.2
于 2015-06-19T14:43:41.287 回答
2

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

sudo apt-get install python-dev

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

在此处输入图像描述

于 2013-11-09T10:48:31.753 回答
2

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

于 2015-03-11T19:06:14.503 回答