python setup.py卸载

我已经安装了python setup.py install一个python包。

我如何卸载它?

您需要手动删除所有文件,还要撤消安装手动执行的其他任何操作。

如果您不知道所有文件的列表,可以使用--record选项重新安装它,然后查看产生的列表。

要logging已安装文件的列表,您可以使用:

 python setup.py install --record files.txt 

一旦你想卸载,你可以使用xargs进行删除:

 cat files.txt | xargs rm -rf 

或者如果您正在运行Windows,请使用Powershell:

 Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force} 

对我来说,以下大部分工作:

安装点子,例如:

 $ easy_install pip 

检查,从pip的angular度来看你的安装包是如何命名的:

 $ pip freeze 

这将列出所有软件包的名称,您已经安装(哪些是通过点检测)。 该名称可能需要很长时间,然后只使用在#egg=之后显示的包的名称。 你也可以在大多数情况下忽略版本部分(不pipe下面的==- )。

然后卸载软件包:

 $ pip uninstall package.name.you.have.found 

如果它要求确认移除包裹,那么你是幸运的人,它将被删除。

点子应检测所有通过点子安装的软件包。 它还应该检测通过easy_install或setup.py安装的大部分软件包,但在极less数情况下可能会失败。

这里是我的本地testing的实际示例,在MS Windows上使用名为ttr.rdstmc软件包。

 $ pip freeze |grep ttr ttr.aws.s3==0.1.1dev ttr.aws.utils.s3==0.3.0 ttr.utcutils==0.1.1dev $ python setup.py develop ..... ..... Finished processing dependencies for ttr.rdstmc==0.0.1dev $ pip freeze |grep ttr ttr.aws.s3==0.1.1dev ttr.aws.utils.s3==0.3.0 -e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev ttr.utcutils==0.1.1dev $ pip uninstall ttr.rdstmc Uninstalling ttr.rdstmc: c:\python27\lib\site-packages\ttr.rdstmc.egg-link Proceed (y/n)? y Successfully uninstalled ttr.rdstmc $ pip freeze |grep ttr ttr.aws.s3==0.1.1dev ttr.aws.utils.s3==0.3.0 ttr.utcutils==0.1.1dev 

编辑2015-05-20

所有上面写的东西仍然适用,无论如何,现在有一些小的修改。

在python 2.7.9和python 3.4中安装pip

最近的python版本带有一个ensurepip包,即使在离线状态下也可以安装pip:

$ python -m ensurepip –upgrade

在某些系统上(如Debian Jessie),这是不可用的(以防止破坏系统python安装)。

使用grepfind

上面的例子假设你已经安装了grep 。 我有(当时我的机器上有MS Windows)安装了一套Linux实用程序(包括grep)。 或者,使用本地MS Windows find或简单地忽略该过滤,并在检测到的python包的一长串名单中find名称。

#1答案有问题:

  • 将不能在Mac上工作。
  • 如果安装了包含空格或其他特殊字符的文件,则xargs命令将失败,并删除与单个词相匹配的任何文件/目录。
  • rm -rf-r是不必要的,最坏的情况下可以删除你不想要的东西。

相反,对于unix来说:

 sudo python setup.py install --record files.txt # inspect files.txt to make sure it looks ok. Then: tr '\n' '\0' < files.txt | xargs -0 sudo rm -f -- 

对于Windows:

 python setup.py bdist_wininst dist/foo-1.0.win32.exe 

还有卸载setup.py安装无法解决的问题,这将不会打扰你在典型的情况下。 有关更完整的答案,请参阅此维基页面:

https://ofswiki.org/wiki/Uninstalling_setup.py_install

首先logging你已经安装的文件。 即使您以前运行过setup.py install ,也可以重复此命令:

 python setup.py install --record files.txt 

当你想卸载,你可以只是:

 sudo rm $(cat files.txt) 

这是有效的,因为rm命令需要删除空格分隔的文件列表,而您的安装logging就是这样一个列表。

现在python给你select在安装过程中安装pip (我在Windows上,至lesspython是这样做的!)。 考虑到你在安装python的时候select了安装pip (你实际上并没有select,因为它是默认的), pip已经为你安装了。 然后,在命令提示符下键入pip ,你应该看到一个帮助来。 您可以在那里find必要的使用说明。 例如, pip list显示已安装软件包的列表。 您可以使用

 pip uninstall package_name 

卸载任何不再需要的软件包。 在这里阅读更多(pip文档) 。

懒惰的方式:只需从Windows安装菜单(如果您使用的是Windows)卸载,或者从rpm命令中卸载,只要在创build分发包之后重新安装。

例如,

 python setup.py bdist_wininst dist/foo-1.0.win32.exe 

(“foo”当然是一个例子)。

转到您的Python软件包目录并删除.egg文件,例如:在python 2.5(ubuntu)中:/usr/lib/python2.5/site-packages/

在python 2.6(ubuntu)中:/usr/local/lib/python2.6/dist-packages/

也许你可以做这个替代:

1)获取python版本 –

 [linux machine]# python Python 2.4.3 (#1, Jun 18 2012, 14:38:55) 

– >上面的命令给你当前的2.4.3版本的python版本

2)获取python的安装目录 –

 [linux machine]# whereis python python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz 

– >从上面的命令你可以得到安装目录 – /usr/lib/python2.4/site-packages

3)从这里你可以删除包和Python的蛋文件

 [linux machine]# cd /usr/lib/python2.4/site-packages [linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg 

这对我工作..而我能卸载包困扰我:)

我想你可以打开setup.py,find包名,然后让pip卸载它。

假设名字在'METADATA'variables中可用:

 pip uninstall $(python -c "from setup import METADATA; print METADATA['name']") 

根据Martin的说法,logging安装输出和一个小小的bash脚本就能很好地完成这个技巧。 这是我做的

 for i in $(less install.record); sudo rm $i; done; 

和presto。 卸载。

通过使用bash来读取命令来删除相关的文件可能会更好,如下所示:

 sudo python setup.py install --record files.txt sudo bash -c "cat files.txt | xargs rm -rf"