pyinstaller:webbrowser.open在打包的应用程序中不起作用

时间:2018-08-02 15:59:48

标签: python python-3.x ubuntu python-3.5 pyinstaller

我有一个简单的应用程序,它运行本地Flask Web服务器,并使用以下命令打开Web浏览器以在启动时显示它:

webbrowser.open('http://localhost:%d' % port, new=2, autoraise=True)

当我在开发模式下运行它时,它工作正常。但是,当使用pyinstaller打包并将其作为可执行文件运行时,我得到以下提示:

gvfs-open: http://localhost:5000: error opening location: No application is registered as handling this file

在两种情况下,浏览器的Web浏览器尝试的顺序是相同的:

'xdg-open', 'gvfs-open', 'gnome-open', 'x-www-browser', 'firefox'

我尝试使用webbrowser.get(NAME).open使用特定命令,但没有一个起作用(Firefox除外)。

似乎这是pyinstaller的问题。是否可能某种环境变量丢失或没有导出到可执行文件?

我在Ubuntu 16.04上使用

命令使用python 3.5.2和pyinstaller 3.3.1
pyinstaller --add-data="static:static" app.py

编辑:我已经确认环境变量确实被更改了:

print('XDG_DATA_DIRS: ' + os.environ.get('XDG_DATA_DIRS', 'not found'))

收益

/usr/share/ubuntu:/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop:/var/lib/snapd/desktop

处于开发模式和

SOURCE_DIR/dist/linux/app/share

打包的可执行文件中的

。我将在pyinstaller github上创建一个问题。

0 个答案:

没有答案