8

Virtualenv 環境に python-numpy をインストールしたいと思います。私のシステムは Ubuntu 12.04 で、Python は 2.7.5 です。最初にVirtualenvをインストールしました

$ sudo apt-get install python-virtualenv

そして、環境をセットアップします

$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.

によってアクティブ化されました

$ . venv/bin/activate

環境にpython-numpyをインストールしました

$ sudo apt-get install python-numpy

ただし、上記のすべての手順を実行した後、環境内の python で numpy をインポートしようとしました。Python から、「numpy という名前のモジュールはありません」と言われました。一方、numpy は Python にグローバルにインポートできます。何度も削除してインストールしようとしましたが、うまくいきません。私はPythonとLinuxの両方の初心者です。

4

2 に答える 2

6

apt-getnew にいる場合でも、モジュールをグローバルにインストールしますvirtualenv

pip install numpy仮想環境内から使用する(最も簡単な方法) か、ソース ディレクトリのルートにnumpyあるファイルを使用してソースからコンパイルおよびインストールする必要がありsetup.pyます (少し難しい方法です。こちらを参照してください)。

virtualenvwrapperまた、仮想環境の管理がはるかに簡単になる をご覧になることを強くお勧めします。

編集:

仮想環境を作成したりsudo、その中に何かをインストールしたりするために、. を使用するとsudo、仮想環境ではなく、グローバル サイト パッケージに変更が加えられるため、ローカルpipにインストールできませんでした。numpy

考慮すべきもう 1 つの点は、デフォルトでは newvirtualenvsがグローバルから継承されることです。site-packagesつまり、Python が 内でローカルにモジュールを見つけられない場合virtualenv、Python はグローバル サイト パッケージ *も検索します。あなたの場合、すでにnumpyグローバルにインストールされているため(を使用して)、仮想環境でapt-get試してみると、すでにPythonパスにあることがわかり、ローカルにインストールされません。pip install numpypipnumpy

あなたは出来る:

  1. --no-site-packagesを作成するときにオプションを渡しますvirtualenv。これにより、newvirtualenvがグローバル サイト パッケージから継承されなくなります。そのため、すべてをローカルにインストールする必要があります。

  2. ローカルでのpipインストール/アップグレードを強制します。たとえば、次を使用します。numpypip install -U --force numpy


* v1.7 の時点で、 のデフォルトの動作virtualenvは、グローバルsite-packagesディレクトリを含めないことです。--system-site-packages新しい仮想環境を作成するときにフラグを渡すことで、これをオーバーライドできます。

于 2013-08-13T08:37:48.823 に答える
1

実際、サイト パッケージの PYTHONPATH をいじると、virtalenv の目的が無効になります。私にとってうまくいったのは、pip経由でパッケージをインストールしたいenvを指定することでした

例:

pip -E /home/proj1 

proj1virtualenv を使用して作成された場所。

参考:virtualenvにnumpyをインストールする方法

于 2013-11-09T10:18:04.500 に答える