2012-12-21 15 views
23

私は私のpythonプロジェクトのためのvenvというvirtualenvフォルダを持っています。グローバルにインストールされたパッケージをvirtualenvフォルダにインポートする方法

私は実行することができます:私は1つ、M2Crypto以外のプロジェクトのために必要なすべての要件をインストールし

venv/bin/pip install -r requirements.txt 

を。インストールする唯一の方法はapt-getです:

apt-get install python-m2crypto 

このパッケージをaptからvenvフォルダに追加するにはどうしたらいいですか?また、それはすでにグローバルにインストールいた場合でも、virtualenvのにインストールする

答えて

16

cp -R /usr/lib/python2.7/dist-packages/M2Crypto /home/richard/hello-project/venv/lib/python2.7/site-packages/ 
cp -R /usr/lib/python2.7/dist-packages/OpenSSL /home/richard/hello-project/venv/lib/python2.7/site-packages/ 
2
venv/bin/pip install -I M2Crypto 

-I力。

+0

私はそれを試みます。なぜpip --helpの出力に文書化されていないのですか? –

+0

これは 'pip help install'に書かれています。 '-I'フラグは' install'コマンドに固有であり、したがってグローバルフラグリストには表示されません(他にも多くのコマンド特有のフラグがあります)。 – Amber

+1

ありがとうございます。これはあまりうまくいきません。 M2Cryptoは実際にpip経由でインストールできますが、ライブラリにUbuntu 12.04 LTSでインストールが失敗するバグがあります。彼らはパッチをリリースしましたが、私にとってはうまくいきません...あなたのコマンドを試してみると、pipリポジトリからライブラリをダウンロードし、aptパッケージをコピーするのではなくインストールします。 –

34
--system-site-packages 

は、グローバルサイトパッケージモジュールを仮想環境にアクセスできます。

$ sudo apt-get install python-m2crypto 
$ virtualenv env --system-site-packages 

を...そして、あなたは、あなたのvirtualenvの内部(他のすべてのシステム全体のインストールされたパッケージと一緒に)m2cryptoへのアクセスを持っているでしょう:

あなたが行うことができます。私は結局やった

+0

基本的なPythonインストールにグローバルに共有したいパッケージのみをインストールするように注意している限り、これはやり方です。 –

+0

しかし、グローバルサイトパッケージにアクセスできる場合、仮想環境を使用するポイントは何ですか? –

+0

Richard Knopので、あなた自身のvirtualenvにroot以外のパッケージをインストールして、システムのpythonを混乱させることはありません。 –

11

toggleglobalsitepackagesは、システム全体のsite-packagesへのアクセスを切り替えます。

注:このコマンドを取得するには、pip install virtualenvwrapperが必要です。バニラvirtualenvには含まれていません。 virtualenvwrapperを使用すると、非常に便利なmkvirtualenvコマンドとrmvirtualenvコマンドなどが得られます。

+0

はvirtualenvwrapperをインストールした場合のみ表示されます。さもなければあなたは 'toggleglobalsitepackages:command not found'を得ます。 – szeitlin

+0

良い点が追加されました。ありがとう! – Will

+3

現在は、 'toggleglobalsitepackages'です – eduncan911

関連する問題