もちろん、それは可能です。
たとえば、次のようにpython-dbusをダウンロードできます。$ Sudo apt-get download python-dbus
しかし、現在のvirtualenvにあるこの.debパッケージを使用して、次に何をすべきでしょうか?
本当にこの方法で行う必要がある場合は、グローバルにインストールされるファイルを直接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に追加していると言いました。そのため、私はvirtualcursorにコピーしたファイルを確認した後、pycurlを使用してそのディレクトリでsite-packagesまたはdist-packagesを探しました。また、実行可能ファイルをbinからvirtualenvのbinディレクトリにコピーする必要があります。
また、pip install -r requirements.txt
そこにpycurlが見つかり、pipでインストールしたかのようにスキップしました。
なぜあなたはこれをしたいのですか?重要なのは、そのようなことをしないようにすることです...
virtualenv whatever
cd whatever
bin/pip install dbus-python
--no-site-packages
をvirtualenv
に指定して、さらに分離することもできます。
最初にdbus開発ライブラリをインストールします(他の開発ライブラリが必要になる場合がありますが、これで十分です)
Sudo apt-get install libdbus-1-dev libdbus-glib-1-dev
次に、virtualenvをアクティブにして、次を実行します。失敗しますが、大丈夫です。
pip install dbus-python
最後に、virtualenvのビルドディレクトリに移動し、Python以外の方法でインストールします。
cd $VIRTUAL_ENV/build/dbus-python
chmod +x configure
./configure --prefix=$VIRTUAL_ENV
make
make install
別の解決策は、グローバルにインストールしてから、virtualenvがそれを表示できるようにすることです。例として、Python 3のmatplotlibをインストールする場合を考えます。
Sudo apt update
#最初に更新Sudo apt install python3-matplotlib
#グローバルにインストールSudo pip3 install -U virtualenv
#pip3を使用してPython 3のvirtualenvをインストールしますvirtualenv --system-site-packages -p python3 ./venv
#system-site-packagesオプションにより、venvはmatplotlibを含むすべてのグローバルパッケージを表示できますsource ./venv/bin/activate
#virtualenv内でmatplotlibを使用するには、venvをアクティブにしますdeactivate
#virtualenvの使用が完了するまで終了しないでください