簡體   English   中英

在virtualenv中安裝Python-Dbus

[英]Install Python-Dbus in virtualenv

我在需要訪問DBus的虛擬環境中運行應用程序(主要是與網絡管理器交互)。

我嘗試使用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 dbus綁定和Python模塊的“可訪問性”方面遇到了一些問題,所以我真的不知道在虛擬環境中設置Dbus-Python的最佳方法。 有沒有人成功實現這一點? 或者有人知道如何做到這一點?

先感謝您。

我的建議是安裝Python DBUS綁定的系統包,然后使用--system-site-packages命令行選項創建virtualenv ,以啟用從激活的virtualenv訪問系統范圍的Python包(包括dbus包) 。 例如在Debian / Ubuntu(或派生的發行版)上:

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

要使用內置的Python 3 venv模塊而不是virtualenv

$ sudo apt-get install python-dbus
$ sudo apt-get install python3-venv
$ python3 -m venv --system-site-packages my_venv

pip嘗試安裝包時,它會查找dbus-python沒有的setup.py ,因此您必須下載源並手動編譯它。 不應該太難:

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應該可以安裝它

另一種解決方法是直接手動將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/

轉到你的Venv按照以下兩個步驟:

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

2)pip install dbus-python

驗證:

3) pip freeze

如果安裝正確,你會看到:dbus-python == 1.2.8

OP似乎已經在freedesktop.org上開了一張票 ,這張仍然開放; 然而,該票證附帶了一個補丁 ,可以應用於大多數版本的python-dbus,然后重新打包為新的tarball。

非常感謝@TheMeaningfulEngineer,我有一些問題需要通過pip安裝dbus,這就是我需要的,我希望無論你身在何處都能度過美好的一天;)

檢查是否有本地 - sudo apt list --installed | grep pakage-name sudo apt list --installed | grep pakage-name

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

在這行之后,我確實安裝了dbusnetworkmanager沒有任何錯誤

這正是我所做的,在此之前我檢查了所有我的dbus版本和網絡管理員做了什么@TheMeaningfulEngineer說工作,如果我在這個評論中做錯了嘗試解釋我什么或為什么,所以抱歉我英語。

對於Python,因為dbus-python現在已經過時,你應該使用pydbus


pip install pydbus

這對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM