tag requests read parsear parse page htmlparse python installation virtualenv dbus

requests - Instalar Python-Dbus en virtualenv



requests html python (7)

Estoy ejecutando una aplicación en un entorno virtual que necesita acceso a DBus (para interactuar con Network Manager, principalmente).

Intenté instalar Dbus-Python con easyinstall y pip, pero ambos fallaron.

Cuando trato de hacer esto:

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

Pip me grita con:

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

He tenido algunos problemas con los enlaces de dbus de Python y su "accesibilidad" de mis módulos de Python en el pasado, así que no sé cuál puede ser la mejor forma de configurar Dbus-Python en un entorno virtual. ¿Alguien ha logrado con éxito esto? ¿O alguien tiene una idea de cómo hacer esto?

Gracias de antemano.


@TheMeaningfulEngineer muchas gracias, he tenido algunos problemas para instalar dbus a través de pip y eso era lo que necesitaba. Espero que tenga un buen día donde sea que esté;)

para comprobar si hay en local - 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

y después de esta línea networkmanager dbus y networkmanager sin errores

esto es exactamente lo que hice, y antes de eso revisé toda mi versión de dbus y networkmanager después de hacer lo que dijo @TheMeaningfulEngineer que está funcionando, si estoy haciendo algo mal en este comentario, intente explicarme qué o por qué, y lo siento por mi Inglés.


Cuando pip intenta instalar un paquete, busca setup.py , que dbus-python no tiene, por lo que tendrá que descargar la fuente y compilarla manualmente. No debería ser demasiado difícil:

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

entonces puede mover los archivos compilados a su virtualenv.

edición: a partir de dbus-python-1.2.2 (publicado 2016-02-22) dbus-python tiene un setup.py , por lo que pip debería poder instalarlo


El OP parece haber abierto un ticket en freedesktop.org para esto, que permanece abierto; sin embargo, hay un parche adjunto a ese ticket que podría aplicarse a la mayoría de las versiones de python-dbus y luego volver a empaquetarse como un nuevo archivo comprimido.


Mi sugerencia es instalar el paquete del sistema para los enlaces DBUS de Python y luego crear el virtualenv con la opción de línea de comandos --system-site-packages para permitir el acceso a los paquetes de Python de todo el sistema (incluido el paquete dbus ) desde el virtualenv activado. . Por ejemplo, en Debian / Ubuntu (o una distribución derivada):

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

Para usar el módulo construido en Python 3 venv lugar de virtualenv :

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


Otra solución es simplemente copiar manualmente los archivos / bibliotecas de dbus directamente a su 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/


Para Python, dado que dbus-python ahora está obsoleto, debería usar pydbus :

pip install pydbus

Esto me ha funcionado.


Ve a tu Venv sigue estos 2 pasos:

1)sudo apt-get install libdbus-glib-1-dev libdbus-1-dev 2)pip install dbus-python

verificar con:

3) pip freeze

si está instalado correctamente verá: dbus-python == 1.2.8