2012-11-09 60 views
1

我有一個使用ConfigParser.ConfigParser()訪問配置文件的Python應用程序。我使用py2exe創建了Python應用程序的Windows服務。我遇到的問題是,如果將服務放入windows/system32文件夾中,該服務只能找到配置文件。我想將配置文件放在安裝服務的同一文件夾中。例如,使用py2exe後,我有以下文件夾:修改作爲Windows服務運行的python腳本的執行路徑

c:/temp/dist/winservice.exe 
c:/temp/dist/configfile.cfg 

然後我做的:

winservice.exe install 

但服務不會查找路徑中configfile.cfgc:/temp/dist/但在路徑:c:/windows/system32/

有什麼方法可以改變它嗎?

謝謝!

回答

0

您可以使用Inspect模塊獲取創建此代碼對象的文件的名稱。 所以讓你將使用的文件的路徑:inspect.currentframe()f_code.co_filename

因此,要獲得一個目錄名在您winservice.exe是:

dirPath = os.path中。 dirname(inspect.currentframe().f_code.co_filename)

希望它有幫助

+0

感謝您的答案@亞歷山大。我已經嘗試了你的建議,並且'dirPath'是空的。我正在做'configFile = os.path.join(os.path.dirname(dirPath),'config.cfg')',configFile等於「config.cfg」。問題是,如果我把它放在c:/ windows/system32/path中,服務只能找到這個文件。 –

相關問題