2008-12-31 179 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)? 
相關問題