Установка Python-Dbus в virtualenv
Я запускаю приложение в виртуальной среде, которая нуждается в доступе к DBus (в основном для взаимодействия с сетевым менеджером).
Я попытался установить Dbus-Python с easyinstall и pip, но оба потерпели неудачу.
когда я пытаюсь сделать это:
(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 в виртуальной среде. Кто-нибудь успешно достиг этого? Или кто-нибудь есть идея, как это сделать?
спасибо заранее.
5 ответов
, когда pip
пытается установить пакет, он ищет setup.py
, который dbus-python
не имеет, так что вам придется скачать источник и скомпилировать его вручную. Не должно быть слишком трудно:
PYTHON=python3.3 ./configure --prefix=/tmp/dbus-python
make
make install
затем вы можете переместить скомпилированные файлы в virtualenv.
edit: начиная с dbus-python-1.2.2 (выпущено 2016-02-22) dbus-python имеет setup.py
, поэтому pip должен иметь возможность установить его
мое предложение-установить системный пакет для Привязок Python DBUS, а затем создать виртуальное окружение С --system-site-packages
опция командной строки для включения доступа к общесистемным пакетам Python (включая dbus
пакет) из активированного виртуальное окружение. Например, в Debian/Ubuntu (или производном дистрибутиве):
$ sudo apt-get install python-dbus
$ virtualenv --system-site-packages dbus-venv
другой обходной путь - просто вручную скопировать 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/
OP, похоже, открыл билет на freedesktop.org для этого, который остается открытым, однако есть патч прилагается к этому билету это может быть применено к большинству любой версии python-dbus, а затем переупаковано как новый tarball.
@TheMeaningfulEngineer большое спасибо, у меня есть несколько проблем с установкой dbus через pip, и это было то, что мне нужно, надеюсь, у вас будет хороший день, где бы вы ни находились;)
чтобы проверить, есть ли в местных - sudo apt list --installed | grep pakage-name
sudo apt-get install libdbus-glib-1-dev libdbus-1-dev
и после этой строки я установил dbus
и networkmanager
без каких-либо ошибок
это именно то, что я сделал, и до этого я проверил всю свою версию dbus и networkmanager после того, что @TheMeaningfulEngineer сказал, что работает , если я делаю что-то неправильно в этом комментарии, попробуйте объяснить мне, что или почему, и так жаль мой английский.