我已經構建了一個安裝了大量外部文件的python包。我需要能夠從包中安裝的腳本中讀取這些文件。我可以看到,我可以用我的__file__
腳本中,並將其返回是這樣的:如何從包含的腳本中查找使用我的python包安裝的其他文件?
/Library/Python/2.6/site-packages/M5-0.3.0-py2.6.egg/EGG-INFO/scripts/..
,所以我可以導航到該文件的安裝(該.egg目錄的頂層),但我m正在尋找更「標準」的方式來確定我的軟件包的安裝位置。
我已經構建了一個安裝了大量外部文件的python包。我需要能夠從包中安裝的腳本中讀取這些文件。我可以看到,我可以用我的__file__
腳本中,並將其返回是這樣的:如何從包含的腳本中查找使用我的python包安裝的其他文件?
/Library/Python/2.6/site-packages/M5-0.3.0-py2.6.egg/EGG-INFO/scripts/..
,所以我可以導航到該文件的安裝(該.egg目錄的頂層),但我m正在尋找更「標準」的方式來確定我的軟件包的安裝位置。
確實os.getcwd()
讓你在任何地方關閉? (它返回'當前工作目錄',通常是您發佈主腳本的目錄)
使用__file__
會出現什麼問題?如果您正在尋找更高級別的功能,它可能會使用類似的技術。
import os
d = os.path.dirname(__file__[:__file__.rindex(os.extsep+'egg')])
給你的目錄; 「導航」將其與
os.startfile(d)
你可能想要的東西,如 pkgutil.get_data
功能。
如果您的軟件包作爲磁盤上的標準python軟件包目錄結構存在,並且我認爲它會從壓縮的蛋中讀取資源(儘管我沒有用它作爲我自己)。