Pregunta

Python easy_install hace que la instalación de nuevos paquetes sea extremadamente conveniente. Sin embargo, por lo que puedo decir, no implementa las otras características comunes de un administrador de dependencias: enumerar y eliminar paquetes instalados.

¿Cuál es la mejor manera de averiguar qué está instalado y cuál es la forma preferida de eliminar los paquetes instalados? ¿Hay algún archivo que deba actualizarse si elimino paquetes manualmente (por ejemplo, por rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg o similar)?

¿Fue útil?

Solución

pip , una alternativa a setuptools / easy_install, proporciona una " desinstalación " mando.

Instale pip de acuerdo con las instrucciones de instalación :

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

Entonces puede usar la desinstalación de pip para eliminar los paquetes instalados con easy_install

Otros consejos

Para desinstalar un .egg necesita rm -rf el huevo (puede ser un directorio) y eliminar la línea correspondiente de site-packages / easy-install.pth

Primero debe ejecutar este comando:

$ easy_install -m [PACKAGE]

Elimina todas las dependencias del paquete.

Luego elimine el archivo de huevo de ese paquete:

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg

Toda la información está en las otras respuestas, pero ninguna resume ambas sus solicitudes o parece complicar innecesariamente las cosas:

  • Para su eliminación necesita usar:

    pip uninstall <package>
    

    (instalar usando easy_install pip )

  • Para su 'lista de paquetes instalados' necesita usar:

    pip freeze
    

    O:

    yolk -l
    

    que puede mostrar más detalles del paquete.

    (Instalar a través de easy_install yolk o pip install yolk )

Hay varias fuentes en la red que sugieren un truco al reinstalar el paquete con la opción -m y luego simplemente eliminando el archivo .egg en lib / y los binarios en bin /. Además, la discusión sobre este problema de setuptools se puede encontrar en el rastreador de errores de python como setuptools número 21 .

Editar: se agregó el enlace al rastreador de errores de python.

Si el problema es una molestia lo suficientemente grave para usted, puede considerar virtualenv . Le permite crear un entorno que encapsula las bibliotecas de Python. Instala paquetes allí en lugar de hacerlo en el directorio global de paquetes de sitio. Todos los scripts que ejecute en ese entorno tienen acceso a esos paquetes (y, opcionalmente, a los globales también). Lo uso mucho al evaluar paquetes que no estoy seguro de querer / necesito instalar globalmente. Si decide que no necesita el paquete, es bastante fácil eliminar ese entorno virtual. Es bastante fácil de usar. Crea un nuevo entorno:

<*>gt;ENV/bin/easy_install
gt;virtualenv /path/to/your/new/ENV

virtual_envt instala las herramientas de configuración por usted en el nuevo entorno, para que pueda hacer:

<*>

Incluso puede crear sus propios scripts boostrap que configuran su nuevo entorno. Entonces, con un comando, puede crear un nuevo entorno virtual con, por ejemplo, python 2.6, psycopg2 y django instalados de forma predeterminada (puede instalar una versión específica de env de python si lo desea).

Instrucciones oficiales (?): http://peak.telecommunity.com/DevCenter/ EasyInstall # uninstalling-packages

  

Si ha reemplazado un paquete con otra versión, puede eliminar los paquetes que no necesita borrando el archivo o directorio PackageName-versioninfo.egg (que se encuentra en el directorio de instalación).

     

Si desea eliminar la versión actualmente instalada de un paquete (o todas las versiones de un paquete), primero debe ejecutar:

easy_install -mxN PackageName
     

Esto asegurará que Python no continúe buscando un paquete que planea eliminar. Una vez que haya hecho esto, puede eliminar de forma segura los archivos o directorios .egg, junto con los scripts que desee eliminar.

prueba

$ easy_install -m [PACKAGE]

luego

$ rm -rf .../python2.X/site-packages/[PACKAGE].egg

Para enumerar los paquetes de Python instalados, puede usar yolk -l . Sin embargo, primero deberá usar easy_install yolk .

Encontré esta pregunta al intentar desinstalar muchos paquetes aleatorios de Python instalados a lo largo del tiempo.

Usando la información de este hilo, esto es lo que se me ocurrió:

cat package_list | xargs -n1 sudo pip uninstall -y

El package_list se limpia (awk) de un pip freeze en un virtualenv.

Para eliminar casi todos los paquetes de Python:

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y

Me encontré con el mismo problema en mi MacOS X Leopard 10.6.blah.

La solución es asegurarte de que estás llamando a MacPorts Python:

sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql

Espero que esto ayude.

Para mí, solo elimino este archivo: easy-install.pth trabajado, resto pip install django == 1.3.7

Esto funcionó para mí. Es similar a las respuestas anteriores, pero la ruta a los paquetes es diferente.

  1. sudo easy_install -m
  2. sudo rm -rf /Library/Python/2.7/site-packages/.egg

Plataforma: MacOS High Sierra versión 10.13.3

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top