我想问,是否有人对我的问题有解决的办法或线索。
我正在使用一个用于Python开发的PyCharm编辑器。每当我运行包含来自os.system("xdg-open file.pdf")的PyCharm的代码时,一切都会如愿以偿。但是,每当我使用PyInstaller打包我的代码时,这个命令就会失败,没有任何错误消息或线索,发生什么事,做什么,或者从哪里开始搜索来解决这个问题(我知道,os.system()命令没有从已启动的命令中捕捉到任何消息,但是根本没有任何线索)。
我已经想尽一切办法,尽我所能。我尝试过其他启动程序,比如exo-open,mimeopen;我尝试从Python代码中运行一个外部bash脚本,其中包含上述各种组合中的命令,我尝试创建一个外部bash二进制文件(使用PyInstaller),它只执行os.system("xdg-open" + sys.argv[1])命令(因为我在程序外部二进制文件的其他地方调用,它工作得很好),没有任何线索,不知道为什么不起作用。
当我尝试使用bash的纯命令xdg-open file.pdf时,一切都很好。*)
因为我也为Linux和Windows编写了程序,所以在Windows上不存在这种故障。在这里,我经常查看PDF文件命令os.system("start './file.pdf'"),然后就会发生这种情况。
我不知道,这个问题的根源是什么,也可能是PyInstaller问题,作为一个系统问题。
有没有类似的经验和可能的线索或解决方案?您的回复将是非常欢迎的&非常感谢!
配置:
pip安装)电脑是联想ThinkPad T410。
*)可能会有所帮助,或者会造成更多的混乱,但无论如何:在测试过程中,我还尝试从我的程序中运行纯终端,手动传递xdg-open命令。但是当我这么做的时候,没有错误信息,但什么也没有发生。我还试着直接运行PDF查看器,从普通终端运行一切正常,但是从我的程序打开的终端上运行PDF查看器,但是有大量与GTK相关的丢失图标的错误(而且file.pdf也没有打开),所以它通常会失败(不存在图标,也没有打开文件(顺便说一下,错误消息是“打开mimetype应用程序/八元流失败”)。这种行为会导致一些用户/路径/环境问题,但我仍然完全不知道发生了什么,以及如何修复它。
当然,我先尝试过谷歌叔叔,但没有成功。是的,这是可能的,我没有找到适当的问题给他,在这种情况下请给我一些建议;)
发布于 2019-02-15 18:03:47
由于两个月前没有回应,所以似乎没有人对这个问题感兴趣。
我仍然不确定是什么引起了这个问题,但现在看来,它是否有效,所以只是作为证据,我写了什么,我认为,这是这种不愉快行为的可能来源。
我最近更新了内核4.8到内核4.19.21,我尝试作为PDF查看器/编辑Foxit 2.4.4.0911 (几天前下载) (https://www.foxitsoftware.com/downloads/),因为我有这个配置,从我的程序工作打开PDF,甚至我仍然在使用PyInstaller 3.4。
我不太清楚问题的根源是什么,因为我没有将Foxit Reader设置为默认的PDF查看器并在其中打开,也可以作为内核/英特尔视频驱动程序问题的来源,也许是因为我放弃了Xreader作为默认PDF查看器。也许是mimetype的一些问题(例如,DoubleCommander或Mutt不尊重系统mimetype设置,并试图根据自己的意愿在程序中打开文件,我仍然无法弄清楚,为什么和如何改变它),谁知道,当我是这个问题。
在所有情况下,在具有上述配置的LinuxMint18.2机器上,它现在都能正常工作,就像预期的那样。
发布于 2021-03-11 23:52:06
这与此处提到的PyInstaller问题有关:https://github.com/pyinstaller/pyinstaller/issues/3668
就目前而言,这应该是可行的:
myEnv = dict(os.environ)
lp_key = 'LD_LIBRARY_PATH'
lp_orig = myEnv.get(lp_key + '_ORIG')
if lp_orig is not None:
myEnv[lp_key] = lp_orig
else:
lp = myEnv.get(lp_key)
if lp is not None:
myEnv.pop(lp_key)
subprocess.Popen(["xdg-open", "file.pdf"], env=myEnv)https://stackoverflow.com/questions/53354232
复制相似问题