我有PyInstaller 3.6将wxPython Phoenix GUI包装到.exe的Python 3.7.5应用程序。冻结就是这样的参数:
venv\Scripts\pyinstaller app.pyw --clean --onefile --windowed --add-binary icon.ico;. --add-binary logo-iconic.ico;. --add-binary vendor.exe;. --icon logo-iconic.ico --version-file file_version_info.txt
我尝试在应用程序窗口中单击按钮时打开链接(例如https://google.com),但不显示控制台窗口。
我尝试过的事情:
wx.LaunchDefaultBrowser('https://google.com')
subprocess.Popen('C:\\Windows\\explorer.exe https://google.com')
如果我从PyInstaller参数中删除--windowed
,则应用程序可以按预期与wx.LaunchDefaultBrowser('https://google.com')
一起工作,但是在应用程序启动时会显示控制台窗口。如果像在PyInstaller配方中那样将stdout和stderr重定向到文件,则看不到任何内容,未创建文件。
如何在不带控制台的情况下用wxPython GUI打开PyInstaller打包的Python应用程序中的默认OS浏览器?
您可以使用webbrowser
模块,它是stdlib的一部分:
from webbrowser import open
open('http://google.com')
这将在用户默认的浏览器中打开google.com
。