如何卸载使用distutils安装的python包?

Hor*_*ude 90 python

你能简单地从python安装中删除目录,还是有任何必须删除的延迟文件?

cdl*_*ary 44

它根据您传递给的选项install以及系统/包中distutils配置文件的内容而有所不同.我不相信在这些方式指定的目录之外修改任何文件.

值得注意的是,distutils目前没有卸载命令.

还值得注意的是,删除包/ egg会导致依赖性问题 - easy_install试图缓解此类问题的实用程序.

  • 你可以更新这个来直接解决问题的延迟文件部分吗? (4认同)
  • @cdleary:谢谢,但是,我希望您只是澄清和加强您的答案,而不是添加冗长的注释线程。 (2认同)
  • @ S.Lott:对不起,但我不知道你要澄清的答案的哪一部分 - 你能更具体一点吗? (2认同)

Ali*_*har 18

安装的三件事需要删除:

  1. 封装/模块
  2. 脚本
  3. 数据文件

现在在我的linux系统上,这些生活在:

  1. /usr/lib/python2.5/site-packages
  2. 在/ usr/bin中
  3. 在/ usr /股

但是在Windows系统上,它们更可能完全位于Python分发目录中.我不知道OSX,除了它更像是遵循linux模式.


max*_*imk 14

另一个基于黑客的时间戳:

  1. 创建一个锚点: touch /tmp/ts
  2. 重新安装要删除的包: python setup.py install --prefix=<PREFIX>
  3. 删除比锚文件更新的文件: find <PREFIX> -cnewer /tmp/ts | xargs rm -r

  • -1. 我不喜欢`| xargs rm -r`。我建议*手动*查看每个文件。在 ext4(和其他文件系统)上,这个 `find` 也将列出所有 *文件夹*。如果你的前缀是`/usr`,你**将删除`/usr/*`**。 (2认同)

Sal*_*ley 8

是的,只需删除任何安装了distutil的东西是安全的.这适用于已安装的文件夹或.egg文件.当然,依赖于该代码的任何东西都将无法运行.

如果您想让它再次运行,只需重新安装即可.

顺便说一下,如果你使用distutils也考虑使用多版本功能.它允许您安装任何单个软件包的多个版本.这意味着如果您只想安装较新版本,则无需删除旧版本的软件包.


小智 5

在 ubuntu 12.04 中,我发现默认情况下您唯一需要查看的地方是

/usr/local/lib/python2.7/
Run Code Online (Sandbox Code Playgroud)

只需删除关联的文件夹和文件(如果有)!


Cir*_*四事件 5

install --record+xargs rm

sudo python setup.py install --record files.txt
xargs sudo rm -rf < files.txt
Run Code Online (Sandbox Code Playgroud)

删除所有文件,但留下空目录。

这并不理想,它应该足以避免包冲突。

然后,如果您愿意,您可以通过阅读手动完成工作files.txt,或者更勇敢地自动删除空目录。

一个安全的帮手是:

python-setup-uninstall() (
  sudo rm -f files.txt
  sudo python setup.py install --record files.txt && \
  xargs rm -rf < files.txt
  sudo rm -f files.txt
)
Run Code Online (Sandbox Code Playgroud)

在 Python 2.7.6、Ubuntu 14.04 中测试。