2009-08-05 34 views
633

Python's easy_install hace que la instalación de nuevos paquetes sea extremadamente conveniente. Sin embargo, por lo que yo sé, no implementa las otras características comunes de un administrador de dependencias: enumerar y eliminar paquetes instalados.¿Cómo elimino los paquetes instalados con Easy_install de Python?

¿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, rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg o similar)?

+64

este post es de casi 2 años en el momento en que escribo este comentario. pip ahora es efectivamente un reemplazo para easy_install y puede eliminar limpia y correctamente los paquetes (incluidos los huevos) instalados por este último. Por favor, asegúrese de votar la respuesta que sugiere más adelante en el hilo. –

+43

El oxímoron que algo llama *** "easy_install" *** - does not ** a: ** tiene una contraparte 'easy_uninstall', ni ** b: ** molesta mencionar cómo uno puede hacerlo en el' --ayuda' - hace una pausa en mi mente/_furruña mi alma/entristece mi corazón_. –

+10

@mike ¿Qué sucede si estoy tratando de desinstalar pip? (: – mccc

Respuesta

582

pip, una alternativa a setuptools/easy_install, proporciona un comando de "desinstalación".

Instalar pip según la installation instructions:

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

continuación, puede utilizar pip uninstall para eliminar los paquetes instalados con easy_install

+0

¡Oye, realmente lo hace! ¡Gracias! En un momento me molestó que no fuera así. Por alguna razón, mi sistema estaba atascado en la versión 0.3.1 de 'pip'; Tuve que alimentar 'easy_install' la URL al tarball para la versión 0.8.1 para actualizar a una versión que tiene el comando' uninstall'. – intuited

+23

si tiene problemas para desinstalar módulos con pip, asegúrese de que la instalación de su pip esté actualizada: instalación de pip -U pip # que es una U mayúscula U –

+4

pip me ha sido útil para desinstalar un paquete instalado easy_install. Sin embargo, tuve que ejecutar 'pip uninstall ' varias veces para eliminar todas las versiones del paquete. Así que tenlo en mente. Incluso eliminó un paquete "desarrollado" instalado, que fue un desastre como resultado. – DragonFax

28

Hay several fuentes en la red que sugieren un truco mediante la reinstalación del 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 configuración de herramientas se puede encontrar en el rastreador de errores de python como setuptools issue 21.

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

+2

Gracias por esta información. Para referencia de otros, este es el enlace al problema que usted mencionó: http://bugs.python.org/setuptools/issue21 –

25

Si el problema es suficientemente molesto para usted, podría considerar virtualenv. Le permite crear un entorno que encapsula las bibliotecas de Python. Instala paquetes allí en lugar de en el directorio global de paquetes de sitio. Todos los scripts que ejecute en ese entorno tienen acceso a esos paquetes (y opcionalmente también a los globales). Utilizo esto mucho cuando evalúo paquetes que no estoy seguro de querer/necesitar instalar globalmente. Si decide que no necesita el paquete, es bastante fácil simplemente volar ese entorno virtual. Es bastante fácil de usar. Hacer una nueva env:

$>virtualenv /path/to/your/new/ENV 

virtual_envt instala setuptools para usted en el nuevo entorno, por lo que puede hacer:

$>ENV/bin/easy_install 

Puede incluso crear sus propios scripts boostrap que la configuración de su nuevo entorno. Entonces, con un comando, puede crear un nuevo env virtual con, por ejemplo, python 2.6, psycopg2 y django instalados por defecto (puede instalar una versión env-specific de python si lo desea).

+0

¿Qué es $>? ¿Es un aviso? Tal vez corrigiendo a $ sería más útil? Gracias – Gray

178

Para desinstalar una .egg que necesita para rm -rf el huevo (que podría ser un directorio) y retire la línea de juego de site-packages/easy-install.pth

+18

El administrador de paquetes 'pip' más nuevo incluye una función de desinstalación – joeforker

+0

Me parece mejor pip que desinstalar, porque pip install de fuentes. Si tiene como yo un nuevo Win7 64bit, le ahorrará sus días:) – daitangio

+5

Algunos de los usos están atrapados con una versión anterior de pip que no tiene la opción de desinstalación, por lo que esta respuesta todavía tiene valor. –

15

tratar

$ easy_install -m [PACKAGE] 

continuación

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

Para eliminar un paquete: '$ easy_install -mxN package' continuación ' $ rm-rf .../lib/python2 .X/site-packages/PACKAGE.egg' (Ver http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages) –

16

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

Si ha sustituido un paquete con otra versión, entonces usted puede simplemente eliminar el paquete (s) que no necesita al eliminar el PackageName-vers archivo o directorio ioninfo.egg (se encuentra en el directorio de instalación).

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

easy_install -mxN PackageName 

Esto asegurará que Python no continúa la búsqueda de una paquete que planea eliminar. Después de hacer esto, puede eliminar de manera segura los archivos o directorios .egg, junto con los scripts que desee eliminar.

+0

¡Algunas cosas nunca cambian parece!PIP se negó a instalar un complemento de hack TRAC (administrador de trac), solo easy_install funciona. Pero accidentalmente instalé una versión anterior. Y easy_install no pudo arreglar eso desde la url https para el proyecto. Entonces usé PIP para eliminarlo, pero después de volver a instalar TRAC no veo el complemento. Así que uso la información aquí para aislar el paquete y eliminarlo manualmente, luego volver a instalarlo. Uf. (python 2.7) –

7

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

6

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

Utilizando la información de este tema, esto es lo que 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 
+0

'

3

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

La solución es asegurarse de que está llamando a la DarwinPorts Python:

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

Espero que esto ayude.

+1

Sin embargo, he cambiado completamente de MacPorts a Brew, nativo de Python 2.7 y Mac. MySQLdb instalado a través de setup_tools – Cmag

150

En primer lugar tiene que ejecutar este comando:

$ easy_install -m [PACKAGE] 

Se elimina todas las dependencias del paquete.

A continuación, eliminar el archivo de huevo de ese paquete:

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

más doc aquí: http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages – GiDo

+0

'-m' no es el comando apropiado de easy_install para eliminar nada por lo que yo sé, pero esta respuesta proporciona la ubicación crucial de los paquetes easy_install que otras respuestas no tienen. un 'rm -rf/usr/local/lib/python *' antes de instalar pip es el camino a seguir me parece – fuzzyTew

54

Toda la información se encuentra en las otras respuestas, pero ninguna resume ambos sus peticiones o parecen hacer las cosas innecesariamente complejo:

  • Para su eliminación necesita el uso:

    pip uninstall <package> 
    

    (instalación mediante easy_install pip)

  • Para las necesidades use su 'lista de paquetes instalados':

    pip freeze 
    

    O:

    yolk -l 
    

    que pueden enviar más detalles del paquete.

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

+0

Después de ejecutar 'yolk -l', veo que tengo paquetes duplicados como" scipy -0.11 .0 -desarrollo no activo "y" scipy -0.14.0 ... -activo desarrollo ". ¿Cómo puedo desinstalar estos paquetes de desarrollo no activos? – bobbyjoe93

+0

Esto está bien, excepto que quiero desinstalar pip que fue instalado por easy_install. Esto se debe a que terminó instalándolo para la versión de Python incorrecta. – Nagev

2

Para mí sólo eliminar este archivo: fácil de install.pth trabajaron, resto PIP instalar Django 1.3.7 ==

Cuestiones relacionadas