2015-06-11 82 views
0

我需要獲取已安裝軟件包的位置(即來自「site-packages」或「dist-packages」),但我可能位於軟件包目錄本身內。獲取已安裝的軟件包位置(非本地)

我已經嘗試了一切從thesequestions,一些問題不可避免的出現。

我試過pip.get_installed_distributions(),這是非常接近的,但不能保證軟件包已經與pip一起安裝。如果軟件包未安裝pip,則get_installed_distributions()不會返回軟件包。

回答

0

如何:

python -c 'import module; print module.__file__' 

E.g:

$ python -c 'import ssl; print ssl.__file__' 
/usr/lib64/python2.7/ssl.pyc 

對比:

$ python -c 'import requests; print requests.__file__' 
/home/lars/env/common/lib/python2.7/site-packages/requests/__init__.pyc 
+0

如果我的包的目錄這是行不通的。換句話說,如果我在本地克隆一個包,並嘗試在該目錄內導入包,那麼執行這些命令只會給我本地位置。 – Travis

+0

雖然這不正確的行爲嗎?它告訴你Python將使用的模塊的位置,如果你要從該目錄運行它的話。或者,你可以'(cd /; python -c'import module; print module .__ file __')''。堅持在一個別名,你都設置... – larsks

+0

我會嘗試通過Python(首先移動到根),並看到它這樣做的伎倆。這似乎是一個迂迴的方式來實現這一點,但如果它的工作,它的作品 – Travis

相關問題