2012-07-11 3 views

答えて

16

本当にこのようにする必要がある場合は、グローバルにインストールされたファイルをvirtualenvに直接コピーすることができます。例えば、必要なライブラリがインストールされていないので、私はpycurlを動作させることができませんでしたが、apt-get install python-pycurlは実行しました。だから私は、次のようでした:

sudo apt-get install python-pycurl 
cp /usr/lib/python2.7/dist-packages/pycurl* ~/.virtualenvs/myenv/lib/python2.7/site-packages/ 

インストールし、それが/usr/lib/python2.7に追加したと述べました。だから、私は自分のvirtualenvにコピーしたファイルを見て、pycurlでサイトパッケージやdistパッケージを探していた。また、binの実行ファイルをvirtualenvのbinディレクトリにコピーする必要があります。

また、pip install -r requirements.txtを実行するとpycurlが見つかりました.pipe経由でインストールした場合と同じようにスキップしました。

+0

うん。私は同じ決定を見つけました - apt-getでインストールされたライブラリへの単なるリンク(ln s)。 –

+0

これはPython 3のPyQt5では機能しません。 "ImportError:QWidgetsをインポートしようとすると、 'sip'という名前のモジュールが返されます。 – Moustache

5

なぜこれをやりたいですか?全体のポイントは、そのようなものをやって回避することです...

virtualenv whatever 
cd whatever 
bin/pip install dbus-python 

あなたはまた、余分な孤立し、それを維持するためにvirtualenv--no-site-packagesを指定することもできます。

+2

最近のバージョンのvirtualenv deprecate --no-site-packagesは、これが新しいデフォルトであるためです。 –

+0

@ColinDunklau知っていたことを知りませんでした。ありがとう。あなたの答えは –

+0

Thxです。しかし私は、私たちがピップインストールを使用することができないときのケースを意味します。ちょうど.debフォーマットのリポジトリを持っています - 私は何をすべきですか? –

3

まずdbusの開発ライブラリをインストール

sudo apt-get install libdbus-1-dev libdbus-glib-1-dev 

次に、あなたのvirtualenvのが有効で、以下を実行します(あなたには、いくつかの他のdevのライブラリが必要になる場合がありますが、これは私が必要なすべてのです)。それは失敗するだろうが、それは大丈夫です。

pip install dbus-python 

最後に、virtualenvのビルドディレクトリに移動し、非パイソン的な方法でインストールします。

cd $VIRTUAL_ENV/build/dbus-python 
chmod +x configure 
./configure --prefix=$VIRTUAL_ENV 
make 
make install 
関連する問題