gpt4 book ai didi

linux - Pyinstaller 和 xdg-open

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:11 24 4
gpt4 key购买 nike

我想问一下,如果其他人有解决我的问题的解决方案或线索。

我正在使用 PyCharm 编辑器进行 Python 开发。每当我运行包含来自 PyCharm 的 os.system("xdg-open file.pdf") 的代码时,一切都按预期运行。但是每当我使用 PyInstaller 打包我的代码时,这个命令都会失败,没有任何错误消息或线索,发生了什么,该做什么或从哪里开始搜索来解决这个问题(我知道,os.system() 命令没有从启动的命令中捕获任何消息,但是根本没有任何线索)。

我已经尝试了所有可能的事情。我试过其他启动器,我发现了,比如 exo-open, mimeopen;我试图从 Python 代码运行一个外部 bash 脚本,其中包含上述各种组合的命令,我试图创建一个外部 Python 二进制文件(使用 PyInstaller),它只执行 os. system("xdg-open"+ sys.argv[1]) 命令(因为我在我的程序外部二进制文件的其他地方调用并且它工作正常),没有任何线索,为什么它不起作用。

当我尝试使用来自 bash 的纯命令 xdg-open file.pdf 时,一切正常。 *)

因为我的程序也适用于 Linux 和 Windows,所以在 Windows 上不存在此故障。我在那里使用查看 PDF 文件命令 os.system("start './file.pdf'") 并且它发生了。

我不确定,这个问题的根源是什么,它可能是 PyInstaller 问题,也可能是系统问题。

有没有人有类似的经历,可能有一些线索或解决方案?非常欢迎您的回复,非常感谢!

配置:

  • Linux Mint 18.2 64 位(内核 4.8.0-53-generic)
  • Xfce4 图形环境
  • python 2.7
  • PyCharm 2018(最接近最新版本)
  • bash 4.3
  • PyInstaller 3.4(使用pip安装)

电脑是Lenovo ThinkPad T410。

*) 也许它会有所帮助,或者更加困惑,但无论如何:在测试过程中,我也尝试从我的程序运行纯终端,手动传递 xdg-open 命令。但是当我这样做时,没有错误信息,但什么也没有发生。我还尝试直接运行 PDF 查看器,从公共(public)终端一切正常,但从我的程序打开的终端运行 PDF 查看器,但有大量与 GTK 相关的错误,关于丢失图标(和 file.pdf 也没有打开),所以通常它会失败(没有图标,也没有打开文件(顺便说一句,错误消息如“打开 mimetype application/octet-stream 失败” )).这种行为会导致一些用户/路径/环境问题,但我仍然完全不知道会发生什么以及如何解决它。

附言当然,我首先尝试了谷歌叔叔,但没有成功。是的,有可能我没有找到合适的问题给他,在那种情况下请给我一些建议 ;)

最佳答案

从两个月前开始一直没有回复,看来没人对这个问题感兴趣

我仍然不确定是什么导致了这个问题,但现在看来,它是有效的,所以我写的证据,我认为,这可能是这种不愉快行为的根源。

我最近将内核 4.8 更新到内核 4.19.21,并且我尝试使用 PDF 查看器/编辑器 Foxit Reader 2.4.4.0911(几天前下载)(https://www.foxitsoftware.com/downloads/),因为我有这个配置,从我的程序运行正常,即使我仍在使用 PyInstaller 3.4。

我不太确定,问题的根源是什么,因为我没有将 Foxit Reader 设置为默认的 PDF 查看器,它会在其中打开,也可能是某些内核/英特尔视频驱动程序问题的问题来源,也许这是因为我放弃了 Xreader 作为默认的 PDF 查看器。也许这是 mimetypes 的一些问题(我提到,例如 DoubleCommander 或 Mutt 不尊重系统 mimetypes 设置并尝试根据自己的意愿在程序中打开文件,但我仍然不明白,为什么以及如何改变它),谁知道,当我一个人处理这个问题时。

在所有情况下,在具有上述配置的 Linux Mint 18.2 机器上,它现在可以按预期工作。

关于linux - Pyinstaller 和 xdg-open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53354232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com