您能否仅从Python安装中删除目录,或者是否需要删除任何残留文件?
easy_install
这样的实用程序尝试缓解此类问题。需要删除的三个安装内容分别为:
在我的Linux系统上,它们位于以下目录中:
但在Windows系统中,这些内容更可能完全位于Python发行目录中。我对OSX没有了解,不过它更可能遵循Linux的模式。
另一个基于时间戳的黑客技巧:
touch /tmp/ts
python setup.py install --prefix=<PREFIX>
find <PREFIX> -cnewer /tmp/ts | xargs rm -r
| xargs rm -r
这段命令。我建议逐个文件夹进行手动操作。在ext4(和其他文件系统)上,这个find
命令会列出所有文件夹。如果你的前缀是/usr
,那么你将会删除/usr/*
。 - Mateen Ulhaq是的,直接删除distutils安装的任何东西是安全的,包括已安装的文件夹或.egg文件。当然,依赖该代码的任何内容将不再工作。
如果您想让它再次正常工作,只需重新安装即可。
顺便说一句,如果您正在使用distutils,请考虑使用多版本功能。它允许您安装任何单个包的多个版本。这意味着,如果您只想安装新版本而不想删除旧版本包,则无需删除旧版本包。
/var/log/syslog
。/usr/local/lib/python2.7/
sudo python setup.py install --record files.txt
xargs sudo rm -rf < files.txt
删除所有文件但保留空目录。
这并不理想,应该足以避免软件包冲突。
然后您可以根据需要手动完成工作,方法是阅读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
)
本文在Python 2.7.6和Ubuntu 14.04下测试通过。
对于Windows系统下的Python:
python -m pip uninstall "package_keyword"
uninstall **** (y/n)?
对于Windows 7操作系统,
控制面板 --> 程序 --> 卸载程序
,然后选择要卸载的Python包。
我刚刚卸载了一个Python包,虽然我不确定我是否完美地完成了这个过程,但我相信我做得还算可以。
首先,我获取了一个按日期排序的所有Python相关文件列表,因为我假设我的包中的所有文件将具有更或多或少相同的时间戳,而其他文件则没有。
幸运的是,我已经在/opt/Python-2.6.1
下安装了Python;如果我使用的是Linux发行版自带的Python,那么我就必须搜索整个/usr
目录,这将花费很长时间。
然后,我只需检查该列表,并松了一口气,因为我想要删除的所有内容都包括一个目录/opt/Python-2.6.1/lib/python2.6/site-packages/module-name/
和一个文件/opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info
。
所以我只需要删除它们。
以下是如何获得按日期排序的文件列表:
find "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(顺便说一下,我认为这必须是GNU“find”;你在OS X上得到的版本不知道“-printf'%T@'”)
我经常使用它。