with setup failed error entorno egg_info crear python virtualenv apt-get

entorno - python setup py egg_info failed with error 1



¿Cómo puedo hacer que apt-get se instale en mi virtualenv? (4)

Por qué querrías hacer esto? El objetivo es evitar hacer cosas así ...

virtualenv whatever cd whatever bin/pip install dbus-python

También puede optar por especificar --no-site-packages para virtualenv para mantenerlo aislado adicionalmente.

Es posible, por supuesto.

Por ejemplo, puedo descargar python-dbus así: $ sudo apt-get descargar python-dbus

¿Pero qué debo hacer a continuación, con este paquete .deb en mi virtualenv actual?


Primero instale las bibliotecas de desarrollo de dbus (es posible que necesite otras bibliotecas de desarrollo, pero esto es todo lo que necesito)

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

A continuación, con su virtualenv activado, ejecute lo siguiente. Fallará pero está bien.

pip install dbus-python

Finalmente, ingrese en el directorio de compilación de su virtualenv e instálelo de forma no pythonic.

cd $VIRTUAL_ENV/build/dbus-python chmod +x configure ./configure --prefix=$VIRTUAL_ENV make make install


Una solución alternativa es instalar globalmente, luego seguir permitiendo que virtualenv pueda verlo. Como ejemplo, digamos que queremos instalar matplotlib para Python 3:

  1. sudo apt update # Actualizar primero
  2. sudo apt install python3-matplotlib # Instalar globalmente
  3. sudo pip3 install -U virtualenv # Instale virtualenv para Python 3 usando pip3
  4. virtualenv --system-site-packages -p python3 ./venv #la opción de sistema-sitio-paquetes permite que venv vea todos los paquetes globales, incluido matplotlib
  5. source ./venv/bin/activate #activate el venv para usar matplotlib dentro del virtualenv
  6. desactivar # no salir hasta que haya terminado de usar el virtualenv

Si realmente necesita hacerlo de esta manera, solo puede copiar los archivos que se instalan globalmente directamente en su virtualenv. Por ejemplo, no pude hacer funcionar Pycurl ya que no se estaban instalando las bibliotecas requeridas, pero sí lo hizo apt-get install python-pycurl . Así que hice lo siguiente:

sudo apt-get install python-pycurl cp /usr/lib/python2.7/dist-packages/pycurl* ~/.virtualenvs/myenv/lib/python2.7/site-packages/

La instalación dijo que lo estaba agregando a /usr/lib/python2.7. Así que busqué en ese directorio un paquete de sitios o paquetes dist con pycurl, luego de mirar los archivos los copié en mi virtualenv. También deberías copiar cualquier archivo ejecutable de bin en el directorio bin de tu virtualenv.

Además, ejecutar un pip install -r requirements.txt Requirements.txt encontró pycurl allí y lo salté como si lo hubiera instalado a través de pip.