python setup.py卸载

python setup.py卸载,python,setup.py,pypi,Python,Setup.py,Pypi,我已经用python setup.py install安装了一个python包 如何卸载它?注意:避免使用python setup.py安装使用pip安装。 您需要手动删除所有文件,还需要撤消安装手动执行的任何其他操作 如果您不知道所有文件的列表,可以使用--record选项重新安装它,并查看由此产生的列表 要记录已安装文件的列表,可以使用: python setup.py install --record files.txt 要卸载后,可以使用xargs进行删除: xargs rm -rf

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


如何卸载它?

注意:避免使用
python setup.py安装
使用
pip安装。

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

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

要记录已安装文件的列表,可以使用:

python setup.py install --record files.txt
要卸载后,可以使用xargs进行删除:

xargs rm -rf < files.txt
然后还删除包含目录,例如
macOS上的
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/my_module-0.1.egg/
。它没有文件,但Python仍将导入一个空模块:

>>> import my_module
>>> my_module.__file__
None
一旦删除,Python将显示:

>>> import my_module
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
>>导入我的\u模块
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ModuleNotFoundError:没有名为“我的模块”的模块

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


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

惰性方法:只要从Windows安装菜单(如果使用Windows)或rpm命令卸载,前提是在创建分发包后首先重新安装

比如说,

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

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

扩展Martin所说的内容,记录安装输出和一点bash脚本非常好地完成了这项任务。我就是这么做的

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

还有普雷斯托。已卸载。

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

python setup.py install --record files.txt
当您想要卸载时,您可以:

sudo rm $(cat files.txt)

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

对于我来说,以下主要工作方式是:

安装pip,例如:

$ easy_install pip
检查,从pip的角度来看,您安装的软件包的名称如何:

$ pip freeze
这将列出您已安装的所有软件包(以及pip检测到的软件包)的名称。 名称可以很长,然后只使用在
#egg=
和之后显示的包的名称。在大多数情况下,您也可以忽略版本部分(无论后面是
=
还是
-

然后卸载软件包:

$ pip uninstall package.name.you.have.found
如果它要求确认删除该包,那么你是幸运的家伙,它将被删除

pip应检测由pip安装的所有软件包。它还应检测通过easy_install或setup.py安装的大多数软件包,但在某些罕见的情况下可能会失败

这是我在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 上面写的所有内容仍然适用,无论如何,现在有一些小的修改可用

在Python2.7.9和Python3.4中安装pip 最近的python版本附带了一个包
ensurepip
,允许在脱机时安装pip:

$python-m ensurepip--升级

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

使用
grep
find

上面的示例假设您已经安装了
grep
。我安装了一套linux实用程序(包括grep),当时我的机器上安装了MS Windows。或者,使用本机MS Windows
find
,或者干脆忽略该筛选,在检测到的python包的较长列表中查找名称。

最好使用bash读取命令删除相关文件,如下所示:

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

或许您可以将此作为备选方案:-

1) 获取python版本-

[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55) 
->上面的命令提供了当前的python版本,即2.4.3

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) 从这里可以删除包和pythonegg文件

[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
这对我很有用。。我能够卸载困扰我的软件包:)

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 --
卸载
setup.py
install也存在无法解决的问题,在典型情况下,这些问题不会困扰您。有关更完整的答案,请参阅此wiki页面:


现在python为您提供了在安装过程中安装
pip
的选择(我在Windows上,至少python在Windows上是这样做的!)。考虑到您在安装python时选择了安装
pip
(您实际上不必选择,因为它是默认的),
pip
已经为您安装好了。然后,在命令提示符中键入
pip
,您应该会看到出现一个帮助。你可以在那里找到必要的使用说明。例如,
pip list
显示已安装软件包的列表。你可以用

pip uninstall package_name

卸载您不再需要的任何软件包。阅读更多信息。

我认为您可以打开setup.py,找到包名,然后让pip卸载它

假设名称在“METADATA”变量中可用:

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

不是完全回答这个问题,而是每天都能帮助我的东西:

使用安装软件包

pip install .
这会将包放入
$HOME/.local
中。使用卸载

pip uninstall <package_name>
pip卸载
我已经运行了“python setup.py I”
pip install .
pip uninstall <package_name>