2014-09-12 58 views
1

我正在爲更大的系統開發python模塊。我做了一個setup.py包來安裝它在主模塊中。它工作正常,但後來我對模塊進行了一些更改,主要是修改了py文件的名稱,並重新組織了一大堆類。爲什麼setup.py安裝舊文件?

然後我更新了模塊的版本,用pip卸載舊版本,然後使用python setup.py install來安裝新版本,當我嘗試在ipython中導入時發現我有舊的已擦除模塊。

發現它很奇怪,並檢查我的virtualenv lib文件夾,發現模塊的兩個版本,與舊的類結構和新的。兩者都可用,因爲我在ipython中導入並測試了它。

它沒有提出任何問題,因爲我可以簡單地使用最新版本,但是很混亂。任何想法爲什麼這種行爲?

回答

1

如果您沒有安裝pip,則無法使用pip進行卸載,因此您從未真正卸載舊版本。 python setup.py install將安裝不同的版本,但通常它們安裝在舊版本之上(.egg-info文件或目錄除外)。你沒有說明兩個版本並排居住的原因,因爲setup.py(或pip)不會將site-packages/my_module重命名爲my_module_v1。我假設你改變了目錄結構和.py文件名,足以使這兩個版本可以共存在同一個父目錄中,所以在IPython中,你可以運行from my_module import OldClassNamefrom my_module import NewClassName

+0

嗯,有趣。謝謝。 – cllamach 2014-09-15 12:36:47

相關問題