我在Ubuntu 13.04上为Python 2.7.4创建了virtualenv。我安装了python-dev。
我在virtualenv中安装numpy时有the error。
也许,你有任何想法要解决吗?
答案 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
您也可以通过软件中心安装它:
答案 6 :(得分:2)
@ samkhan13解决方案对我不起作用,因为pip表示它没有-E选项。 我仍然得到同样的错误,但对我来说有用的是安装matplotlib,它安装了numpy。