23

DBus へのアクセスが必要な仮想環境でアプリケーションを実行しています (主に Network Manager と対話するため)。

easyinstall と pip を使用して Dbus-Python をインストールしようとしましたが、どちらも失敗します。

私がこれをやろうとすると:

(myvirtualenv)borrajax@borrajax-computer:~/Documents/Projects/VirtualEnvs/current_env$ bin/pip install dbus-python

ピップは私にこう怒鳴ります:

Downloading/unpacking dbus-python
  Downloading dbus-python-1.1.1.tar.gz (596kB): 596kB downloaded
  Running setup.py egg_info for package dbus-python
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
    IOError: [Errno 2] No such file or directory: '/home/borrajax/Documents/Projects/VirtualEnvs/current_env/build/dbus-python/setup.py'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

IOError: [Errno 2] No such file or directory: '/home/borrajax/Documents/Projects/VirtualEnvs/current_env/build/dbus-python/setup.py'

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /home/borrajax/Documents/Projects/VirtualEnvs/current_env/build/dbus-python
Storing complete log in /home/borrajax/.pip/pip.log

過去にPythonモジュールからのPython dbusバインディングとそれらの「アクセシビリティ」に問題があったため、仮想環境でDbus-Pythonを設定する最良の方法が何であるかがよくわかりません。誰かがこれを成功させましたか?または、これを行う方法について誰かが考えていますか?

前もって感謝します。

4

7 に答える 7

18

私の提案は、Python DBUS バインディングのシステム パッケージをインストールしてから、コマンド ライン オプションを使用してvirtualenvを作成し、アクティブ化されたvirtualenv--system-site-packagesからシステム全体の Python パッケージ (パッケージを含む) にアクセスできるようにすることです。たとえば、Debian/Ubuntu (または派生ディストリビューション) の場合:dbus

$ sudo apt-get install python-dbus
$ virtualenv --system-site-packages dbus-venv

venvの代わりに組み込みの Python 3 モジュールを使用するにはvirtualenv:

$ sudo apt-get install python-dbus
$ sudo apt-get install python3-venv
$ python3 -m venv --system-site-packages my_venv
于 2012-11-13T19:36:17.093 に答える
15

pipパッケージをインストールしようとするとsetup.py、存在dbus-pythonしない を探します。そのため、ソースをダウンロードして手動でコンパイルする必要があります。難しすぎてはいけません:

PYTHON=python3.3 ./configure --prefix=/tmp/dbus-python
make
make install

その後、コンパイルされたファイルを virtualenv に移動できます。


編集: dbus-python-1.2.2 (2016-02-22 リリース) から始まる dbus-python には があるsetup.pyため、pip でインストールできるはずです

于 2012-11-13T19:40:07.017 に答える
10

別の回避策は、dbusファイル/ライブラリを手動で virtualenv に直接コピーすることです。

cp -r /usr/lib/pythonX.X/{site or dist}-packages/dbus myvirtenv/usr/lib/pythonX.X/site-packages/    
cp -r /usr/lib/pythonX.X/{site or dist}-packages/_dbus_*.so myvirtenv/usr/lib/pythonX.X/site-packages/
于 2014-04-23T07:30:47.670 に答える