python setup.py uninstall

2022-09-05 01:15:59

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

如何卸载它?


答案 1

注意:避免使用python setup.py installpip install .

您需要手动删除所有文件,并撤消手动安装的任何其他内容。

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

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

python setup.py install --record files.txt

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

xargs rm -rf < files.txt

或者,如果你运行的是 Windows,请使用 Powershell:

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

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

>>> 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'

答案 2

对我来说,以下主要工作:

已安装管道,例如:

$ 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

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

在 python 2.7.9 和 python 3.4 中安装 pip

最近的python版本附带了一个软件包,即使在离线时也允许安装pip:ensurepip

$ python -m ensurepip --upgrade

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

使用或grepfind

上面的示例假定,您已经安装。我(当时我的机器上有MS Windows)安装了一套Linux实用程序(包括grep)。或者,使用本机MS Windows或简单地忽略该过滤,并在检测到的python包的更长列表中查找该名称。grepfind