可能重複:
how can i get the executable's current directory in py2exe?Py2Exe位置
有沒有辦法讓路徑可執行文件與當前運行py2exe?例如,如果我有一個用C:\ Users \ Desktop \ John \ myapp.exe存儲的py2exe生成的可執行文件,我如何從Wondows中的myapp.exe中得到此路徑?
感謝您提前提供任何幫助 - 我真的很感激。
可能重複:
how can i get the executable's current directory in py2exe?Py2Exe位置
有沒有辦法讓路徑可執行文件與當前運行py2exe?例如,如果我有一個用C:\ Users \ Desktop \ John \ myapp.exe存儲的py2exe生成的可執行文件,我如何從Wondows中的myapp.exe中得到此路徑?
感謝您提前提供任何幫助 - 我真的很感激。
py2exe將sys.executable
設置爲可執行文件的完整路徑名。 sys.argv[0]
也應該給這條路。官方文檔見Py2exeEnvironment。
您的.exe
文件的路徑應存儲在sys.executable
中。
該py2exe.org維基WhereAmI頁面有一些有用的例子,你也可以找到有用的。
有趣的是,the top-voted answer到a similar question from last year擁護者使用sys.argv[0]
而不是sys.executable
。任何一個應該可以在py2exe中正常工作。如果sys.frozen
已設置,我一直使用sys.executable
,並且從來沒有任何問題,但是使用sys.argv[0]
也不會有任何傷害。
我使用類似以下內容:
def get_app_info():
# determine if application is a script file or frozen exe
application = {'path': './', 'dir': './', 'start': None}
if hasattr(sys, 'frozen'):
application['path'] = sys.executable
application['dir'] = os.path.dirname(sys.executable)
else:
application['path'] = os.path.abspath(sys.argv[:1][0])
application['dir'] = sys.path[0]
return application