How do I remove packages installed with Python's easy_install?

PythonPackagesSetuptoolsEasy Install

Python Problem Overview


Python's easy_install makes installing new packages extremely convenient. However, as far as I can tell, it doesn't implement the other common features of a dependency manager - listing and removing installed packages.

What is the best way of finding out what's installed, and what is the preferred way of removing installed packages? Are there any files that need to be updated if I remove packages manually (e.g. by rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg or similar)?

Python Solutions


Solution 1 - Python

pip, an alternative to setuptools/easy_install, provides an "uninstall" command.

Install pip according to the installation instructions:

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

Then you can use pip uninstall to remove packages installed with easy_install

Solution 2 - Python

To uninstall an .egg you need to rm -rf the egg (it might be a directory) and remove the matching line from site-packages/easy-install.pth

Solution 3 - Python

First you have to run this command:

$ easy_install -m [PACKAGE]

It removes all dependencies of the package.

Then remove egg file of that package:

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

Solution 4 - Python

All the info is in the other answers, but none summarizes both your requests or seem to make things needlessly complex:

  • For your removal needs use:

      pip uninstall <package>
    

    (install using easy_install pip)

  • For your 'list installed packages' needs either use:

      pip freeze
    

    Or:

      yolk -l
    

    which can output more package details.

    (Install via easy_install yolk or pip install yolk)

Solution 5 - Python

There are several sources on the net suggesting a hack by reinstalling the package with the -m option and then just removing the .egg file in lib/ and the binaries in bin/. Also, discussion about this setuptools issue can be found on the python bug tracker as setuptools issue 21.

Edit: Added the link to the python bugtracker.

Solution 6 - Python

If the problem is a serious-enough annoyance to you, you might consider virtualenv. It allows you to create an environment that encapsulates python libraries. You install packages there rather than in the global site-packages directory. Any scripts you run in that environment have access to those packages (and optionally, your global ones as well). I use this a lot when evaluating packages that I am not sure I want/need to install globally. If you decide you don't need the package, it's easy enough to just blow that virtual environment away. It's pretty easy to use. Make a new env:

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

virtual_envt installs setuptools for you in the new environment, so you can do:

$>ENV/bin/easy_install

You can even create your own boostrap scripts that setup your new environment. So, with one command, you can create a new virtual env with, say, python 2.6, psycopg2 and django installed by default (you can can install an env-specific version of python if you want).

Solution 7 - Python

Official(?) instructions: http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages > If you have replaced a package with another version, then you can just delete the package(s) you don't need by deleting the PackageName-versioninfo.egg file or directory (found in the installation directory). > If you want to delete the currently installed version of a package (or all versions of a package), you should first run: > easy_install -mxN PackageName > This will ensure that Python doesn't continue to search for a package you're planning to remove. After you've done this, you can safely delete the .egg files or directories, along with any scripts you wish to remove.

Solution 8 - Python

try

$ easy_install -m [PACKAGE]

then

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

Solution 9 - Python

To list installed Python packages, you can use yolk -l. You'll need to use easy_install yolk first though.

Solution 10 - Python

Came across this question, while trying to uninstall the many random Python packages installed over time.

Using information from this thread, this is what I came up with:

cat package_list | xargs -n1 sudo pip uninstall -y

The package_list is cleaned up (awk) from a pip freeze in a virtualenv.

To remove almost all Python packages:

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

Solution 11 - Python

I ran into the same problem on my MacOS X Leopard 10.6.blah.

Solution is to make sure you're calling the MacPorts Python:

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

Hope this helps.

Solution 12 - Python

For me only deleting this file : easy-install.pth worked, rest pip install django==1.3.7

Solution 13 - Python

This worked for me. It's similar to previous answers but the path to the packages is different.

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

Plaform: MacOS High Sierra version 10.13.3

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionire_and_cursesView Question on Stackoverflow
Solution 1 - PythonlunaryornView Answer on Stackoverflow
Solution 2 - PythonjoeforkerView Answer on Stackoverflow
Solution 3 - PythonPythonDevView Answer on Stackoverflow
Solution 4 - PythonRabarberskiView Answer on Stackoverflow
Solution 5 - Pythonc089View Answer on Stackoverflow
Solution 6 - PythonmazelifeView Answer on Stackoverflow
Solution 7 - PythonMark RajcokView Answer on Stackoverflow
Solution 8 - PythonJim GeovediView Answer on Stackoverflow
Solution 9 - PythonEnis AfganView Answer on Stackoverflow
Solution 10 - Pythonm0hitView Answer on Stackoverflow
Solution 11 - PythonCmagView Answer on Stackoverflow
Solution 12 - PythonSnehal ParmarView Answer on Stackoverflow
Solution 13 - PythonRed RoosterView Answer on Stackoverflow