web-dev-qa-db-ja.com

numpyをPython virtualenvにインストールします

Ubuntu 13.04でPython 2.7.4のvirtualenvを作成しました。python-devをインストールしました。

Numpyをvirtualenvにインストールするときに エラー があります。

多分、修正するアイデアはありますか?

21
karavanjo

問題は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/などに書き込むことができないため、別のエラーを吐き出します。アクティブな環境(作成された環境)内にdesiredPackage(例: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を削除しました。どちらも壊れたrestart-in-venvメカニズムを使用しており、すべてのvirtualenvが内部にpipを持っているため、どちらも役に立ちません。 pip -E path/to/venv install Foovirtualenv path/to/venv && path/to/venv/pip install Fooに置き換えます

29
samkhan13

Python3を使用している場合は、Sudo apt-get install python3-devを実行する必要があります。それを理解するために少し時間を取った。

20
nebffa

すべてのOS依存関係(python-devel、fortranコンパイラーなど)をインストールしたにもかかわらず、この問題が発生する場合、問題は次のバグに関連している可能性があります: "numpy installation install_requiresディレクティブの問題を通じて... "

回避策は、setup.pyを実行してnumpyに依存するインストールしたいものをインストールする前に、numpyを(仮想)環境に手動でインストールすることです。

例:pip install numpy、次にpython ./setup.py install

12
drpoo

この回答は、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
lukecampbell

最近同じ問題が発生しました。私はDebian Jessieを実行して、Python 2.7.9 virtualenv。すでにインストールされています。

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
3
Alex Volkov

@ samkhan13ソリューションは、pipが-Eオプションを持たないと言ったので、私にとってはうまくいきませんでした。私はまだ同じエラーを受け取りましたが、私にとってうまくいったのは、numpyをインストールするmatplotlibをインストールすることでした。

2
gevra

これはおそらくpython-devパッケージがインストールされました。次のようにインストールできます。

Sudo apt-get install python-dev

ソフトウェアセンターからインストールすることもできます。

enter image description here

2
Games Brainiac