2012-11-13 35 views
16

DBus'a erişmesi gereken (çoğunlukla Ağ Yöneticisi ile etkileşimde bulunmak için) sanal ortamda bir uygulama çalıştırıyorum.Virtualenv uygulamasında Python-Dbus'u kurun

Dbus-Python'u kolay kurulum ve pipo ile kurmaya çalıştım ancak ikisi de başarısız. Bunu yapmak çalıştığınızda

:

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 

benim Python gelen piton dbus bağlamaları ve onların "erişilebilirlik" ile bazı sorunlar yaşadım:

(myvirtualenv)[email protected]:~/Documents/Projects/VirtualEnvs/current_env$ bin/pip install dbus-python 

Pip ile bana bağırır Geçmişte modüller, bu yüzden sanal ortamda Dbus-Python'u belirlemenin en iyi yolunun ne olduğunu bilmiyorum. Bunu başarılı bir şekilde yapan var mı? Veya bunun nasıl yapılacağı hakkında bir fikri olan var mı?

Önceden teşekkür ederiz.

cevap

14

manuel. Çok zor olmamalı:

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

o zaman virtualenv için derlenmiş dosya taşıyabilirsiniz.


düzenleme: dbus-piton bir setup.py sahiptir dbus-python-1.2.2 ile başlayan (2016-02-22 yayınlandı), bu yüzden pip o OP gibi görünüyor

11

Benim önerim aktive gelen Python DBUS bağlamaları için sistem paketini yüklemek ve ardından (dbus paketine dahil) sistem genelinde Python paketleri erişim sağlamak için --system-site-packages komut satırı seçeneği ile Virtualenv yaratmaktır virtualenv. Debian/Ubuntu örneğin (ya da türetilmiş dağılımı) için: Eğer download the source zorunda ve bunu derlemek edeceğiz böylece, sahip olmadığı dbus-python, setup.py arar bir paket yüklemeye çalışır pip,

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

yüklemek mümkün olmalıdır bunun için bir ticket on freedesktop.org açıldı; Ancak, python-dbus'un herhangi bir sürümüne uygulanabilecek ve daha sonra yeni bir tarball olarak yeniden paketlenebilen bir patch attached to that ticket vardır.

+0

Ah! Bu ben değildim. Bu yamayu görmemiştim, ama bilgi için teşekkürler :) – BorrajaX

+1

Virtualenv'de dbus-python == 1.2.4' için düzgün çalıştığını onaylayabilir miyim. Başarıyla inşa etmek sudo apt-get install libdbus-glib-1-dev libdbus-1-dev ' – TheMeaningfulEngineer

+1

Teşekkürler @TheMeaningfulEngineer, yorumunuz benim için bu soruya cevap verdi. – justfortherec

8

Başka bir geçici çözüm sadece manuel virtualenv doğrudan dbus dosyaları/kütüphaneleri kopyalamak için:

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/ 
+2

Bir çok sistem dahili olarak kullanılan komut dosyaları nedeniyle dbus-python'a sahip olacağından ve bu sanalenvwrapper 'postmkvirtualenv' betiği ile iyi çalışabileceğinden bu fikri beğeniyorum. – Tatsh

+0

Bu çözüm tam olarak kusursuz olarak nitelendirdiğim bir şey olmasa da, basitlikten hoşlanıyorum. Upvoting. :-) – Drachenfels