2012-11-13 12 views
16

में पायथन-डब्स स्थापित करें मैं वर्चुअल वातावरण में एक एप्लिकेशन चला रहा हूं जिसके लिए डीबीस तक पहुंच की आवश्यकता है (मुख्य रूप से नेटवर्क मैनेजर से बातचीत करने के लिए)।वर्चुअलनव

मैंने आसान स्थापना और पाइप के साथ डबस-पायथन स्थापित करने का प्रयास किया, लेकिन दोनों विफल हो गए।

जब मैं यह करने के लिए प्रयास करें:

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 

मैं अपने अजगर से अजगर dbus बाइंडिंग और उनके "पहुँच" के साथ कुछ मुद्दों लिया है:

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

पिप के साथ मुझे चिल्लाता अतीत में मॉड्यूल, इसलिए मुझे वास्तव में पता नहीं है कि वर्चुअल वातावरण में डबस-पायथन सेट करने का सबसे अच्छा तरीका क्या हो सकता है। क्या किसी ने सफलतापूर्वक इसे हासिल किया है? या किसी को यह कैसे करना है इस पर कोई विचार है?

अग्रिम धन्यवाद।

उत्तर

14

जब pip एक पैकेज स्थापित करने की कोशिश करता है, यह setup.py के लिए लग रहा है, जो dbus-python, नहीं है तो आप download the source करने के लिए है और यह संकलन करेंगे मैन्युअल रूप से। बहुत कठिन नहीं होना चाहिए:

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

तो आप संकलित फ़ाइलों को अपने वर्चुअलनेव में ले जा सकते हैं।


संपादित करें: (2016/02/22 जारी) dbus-अजगर-1.2.2 के साथ शुरू dbus-अजगर एक setup.py है, तो पिप यह

11

मेरे इस सुझाव सक्रिय से अजगर DBUS बाइंडिंग के लिए प्रणाली पैकेज स्थापित करने के लिए और फिर पूरे सिस्टम में अजगर पैकेज (dbus पैकेज सहित) तक पहुंच सक्षम करने --system-site-packages कमांड लाइन विकल्प के साथ virtualenv बनाने है virtualenv। Debian/Ubuntu के पर उदाहरण के (या एक व्युत्पन्न वितरण) के लिए:

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

ओपी प्रतीत होता है स्थापित करने के लिए सक्षम होना चाहिए इसके लिए ticket on freedesktop.org खोला गया, जो खुला रहता है; हालांकि patch attached to that ticket है जिसे पायथन-डबस के किसी भी संस्करण पर लागू किया जा सकता है और फिर एक नई टैरबॉल के रूप में पुन: संग्रहित किया जा सकता है।

+0

ओह! वह मैं नहीं था। मैंने उस पैच को नहीं देखा था, लेकिन जानकारी के लिए धन्यवाद :) – BorrajaX

+1

वर्चुअलenv में 'dbus-python == 1.2.4' के लिए यह सही तरीके से काम कर रहा है। इसे सफलतापूर्वक बनाने के लिए 'sudo apt-get libdbus-glib-1-dev libdbus-1-dev' – TheMeaningfulEngineer

+1

इंस्टॉल करें @TheMeaningfulEngineer, आपकी टिप्पणी ने मेरे लिए इस प्रश्न का उत्तर दिया। – justfortherec

8

एक और वैकल्पिक हल सिर्फ मैन्युअल रूप से अपने virtualenv के लिए सीधे dbus फ़ाइलों/पुस्तकालयों कॉपी करने के लिए है:

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

मुझे इस विचार को पसंद है क्योंकि आंतरिक रूप से उपयोग की जाने वाली स्क्रिप्ट के कारण बहुत सी प्रणालियों में डीबीस-पायथन होगा और यह वर्चुअलएन्वार्पर 'postmkvirtualenv' स्क्रिप्ट के साथ अच्छी तरह से काम कर सकता है। – Tatsh

+0

हालांकि यह समाधान बिल्कुल ठीक नहीं है, जिसे मैं पूरी तरह से साफ करता हूं, मुझे सादगी के लिए यह पसंद है। Upvoting। :-) – Drachenfels

संबंधित मुद्दे