我正在開發一個python應用程序,並有一個關於編碼的問題,以便在用戶通過setup.py install或類似方法將其安裝到他或她的機器上後仍然可以工作。setup.py安裝後訪問文件
在我的文件中的一個,我用的是以下幾點:
file = "TestParser/View/MainWindow.ui" cwd = os.getcwd() argv_path = os.path.dirname(sys.argv[0]) file_path = os.path.join(cwd, argv_path, file)
,以獲得路徑MainWindow.ui
,當我只知道相對於主腳本的位置的路徑。無論我稱之爲主腳本,這都是有效的。
問題是,用戶在他或她的機器上安裝應用程序後,相對路徑是不同的,所以這是行不通的。我可以使用__file__
,但根據this,py2exe沒有__file__
。
是否有一個標準的方法來實現這一目標?還是更好的方法?
編輯:
應我甚至擔心py2exe,只是使用__file__
?我沒有立即計劃使用py2exe,但我希望能夠學習適當的訪問文件的方式。
也許我錯過了一些東西,但爲什麼不是你的安裝程序將TestParser/*複製到與其他所有位置相同的位置?相對路徑應該工作,無論應用程序居住在哪裏,只要所有的路徑都是「相對的」=) – 2010-06-07 01:24:21
@Dan McDougall我還在學習python的setup.py和朋友,所以我可能會錯過一些東西,但安裝了腳本在bin目錄中,而模塊存儲在lib下。所以它的命令行腳本與其他所有內容分開存儲。我認爲有一些標準的方式來建立我不知道的項目分配。 – Matthew 2010-06-07 06:56:12
可能重複? http://stackoverflow.com/questions/1219367/accessing-data-files-before-and-after-distutils-setuptools – Matthew 2010-06-09 21:30:56