2008-12-31 138 views

回答

35

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

值得注意的是,distutils does not have an uninstall command在这个时候。

同样值得注意的是,删除软件包/蛋可能会导致依赖性问题 - 例如easy_install等实用程序试图缓解此类问题。

+3

能否请您更新此直接解决问题的挥之不去的文件的一部分? – 2008-12-31 11:26:17

+0

我以为我做过 - 没有文件是由distutils配置和安装标志指定的目录之外创建的,所以任何“延迟”文件都将存在于这些目录中。它因包装而异。 – cdleary 2008-12-31 21:53:50

+1

@cdleary:谢谢,但是,我希望你只是澄清和加强你的答案,而不是添加一个长长的评论线程。 – 2009-01-01 00:37:27

4

如果这是用于测试和/或开发目的,setuptools有一个develop命令,每次更改时都会更新(因此每次更改时都不必卸载并重新安装)。你也可以使用这个命令卸载软件包。

如果你确实使用这个,你声明为脚本的任何内容都将作为延迟文件留下。

15

是那些获得安装,你将需要删除的三两件事是:

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

现在我的Linux系统上,这些住在:

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

但Windows系统,他们更可能Python发布目录中是完全对。我对OSX一无所知,除了它更像是遵循linux模式。

7

是的,简单地删除distutils安装的任何东西都是安全的。这适用于已安装的文件夹或.egg文件。当然,任何依赖于该代码的东西都不会起作用。

如果您想再次使用它,只需重新安装即可。

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

2

我刚刚卸载了一个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 "[email protected]" -printf '%[email protected] ' -ls | sort -n | cut -d\ -f 2-

(我认为这一定是GNU“查找”,顺便说一句,你在OS X上的味道没有按” t知道“-printf'%T @”)

我使用那个全部的时候。

2

对于Windows 7,

控制面板 - >程序 - >卸载

,然后

选择Python包删除。

12

另一个基于时间戳黑客:

  1. 创建锚:touch /tmp/ts
  2. 重新安装程序包被删除:python setup.py install --prefix=<PREFIX>
  3. 删除的文件有什么比锚文件更近:find <PREFIX> -cnewer /tmp/ts | xargs rm -r
4

在Ubuntu 12.04中,我发现,只需要在默认情况下看的地方是

/usr/local/lib/python2.7/ 

只需删除关联的文件夹和文件,如果有的话!

1

install --record + xargs rm

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进行测试。

1

的Python在Windows中:

python -m pip uninstall "package_keyword" 
uninstall **** (y/n)? 
相关问题