![](/img/trans.png)
[英]py2app application is working but Mac OS X shows it as not responding
[英]How can you get the system default language/locale, in a py2app packaged Python app on Mac OS X?
我寫了一個簡單的wxPython應用程序,將其與py2app打包在一起,將其變成一個可雙擊的自包含.app包,可以將其提供給其他人運行。
我的應用程序使用了一些特定於語言環境的設置-特別是它想以文本形式解析日期-因此它允許用戶指定要使用的語言環境,並調用locale.getdefaultlocale()來預先填充此選擇。
我通過直接運行python代碼(在系統安裝的Python中,未打包)進行了測試,並且工作正常,然后將其與py2app打包,並使用“ open dist / foo.app”測試了最終的自包含應用程序,工作正常。 然后我把它給了別人,他們抱怨說它立即引發了異常。 我嘗試在Finder中雙擊我的.app,瞧瞧,locale.getdefaultlocale()確實返回None(我在該對象上進行方法調用導致的異常)。
我編寫了一個簡單的測試應用程序,該應用程序轉儲環境和locale.getdefaultlocale()的值,並在相同的3個環境中運行它。 結果:-直接從終端以“ python envdump.py”調用:轉儲我的完整環境-包含py2app的軟件包,從終端以“ open dist / envdump.app”調用:轉儲我的整個環境-調用相同的dist / envdump.app通過從Finder打開它:環境更加受限制,是的,因為未設置LANG,所以locale.getdefaultlocale()返回(None,None)。
Finder設置的環境變量的完整列表為:ARGVZERO,Apple_PubSub_Socket_Render,COMMAND_MODE,DISPLAY,EXECUTABLEPAT,HOME,LOGNAME,PATH,PYTHONPATH,RESOURCEPATH,SHELL,SSH_AUTH_SOCK,TMPDIR,USER,__ CF_USER_TEXT_ENCODING。
我可以輕松地使我的代碼容忍缺少LANG / locale.getdefaultlocale(),但是我想以某種方式獲取該信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.