- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想问一下,如果其他人有解决我的问题的解决方案或线索。
我正在使用 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 问题,也可能是系统问题。
有没有人有类似的经历,可能有一些线索或解决方案?非常欢迎您的回复,非常感谢!
配置:
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/
假设我在某处有一个名为 file.ext 的独特文件。它由我的 Ubuntu 框索引,所以命令 locate file.ext 正确地给我(单个)位置,比如 /usr/local/some/place
我正在使用 generator-angular-fullstack。 在我的本地机器上工作正常,我运行 grunt serve 它启动了服务器,但在 VPS 中它失败了 Warning: Comma
有许多与我相似的问题(例如 xdg-open not open default browser 或 xdgutils - xdg-settings not setting default-web-br
在Ubuntu下,通常用命令行打开文本文件,比如用命令gedit、more、cat、vim、less。但当需要打开其他格式文件时,比如pdf、jpg、mp3格式文件,咱们通常做法是进入到文件所在的目
我试图在浏览器中的链接后打开 BlueJean。如果我想让 xdg-open 打开该 url 的应用程序,我会收到提示,我同意并单击按钮。但是,未打开正确的应用程序,并且默认应用程序打开时什么也不做。
假设我正在编写一个程序,我希望它遵循 XDG 基本目录规范来放置文件(如果设置了 foo,应用程序 $XDG_CONFIG_HOME/foo 使用 XDG_CONFIG_HOME 作为配置文件的目录且
我已经查阅了以下文章以及更多文章,但仍然没有理解一个问题 -- freedesktop(或 Ubuntu 或任何现代发行版)使用什么菜单层次结构?我在哪里可以获得此类菜单层次结构的列表?例如,“附件”
我有 Python 控制台应用程序。我尝试使用 xdg-open 并在后台运行它,但我不能。我试过了 os.system('xdg-open http://google.com &') subproc
我有以下情况: 安装了 firefox 和 chrome 的 Ubuntu 16.04 机器,chrome 是我的默认浏览器。 我在 shell 中检查了这个 Action : cat /usr/sh
我想列出在 30 天间隔内创建/修改的音频文件。列出我用过的文件: find -maxdepth 1 -type f -mtime -30 -printf "%f\n" 此命令为我提供了 30 天内创
在 Linux 上,xdg-open 可以启动一个应用程序,但在大多数情况下,所需的行为是仅在应用程序尚未运行时启动它,如果它已经在运行则将其置于最前面。 xdg-open 可以做到这一点吗?是否有其
我想问一下,如果其他人有解决我的问题的解决方案或线索。 我正在使用 PyCharm 编辑器进行 Python 开发。每当我运行包含来自 PyCharm 的 os.system("xdg-open fi
默认情况下,pip 将错误记录到“~/.pip/pip.log”。 Pip 有一个更改日志路径的选项,我想将日志文件放在 ~/.pip 之外的某个地方,以免弄乱我的主目录。我应该把它放在哪里XDG b
我想打开一个图像,在 Windows 中我这样做: #include .. ShellExecute(NULL, "open", "https://gsamaras.files.wordpress.
我在我的 Ubuntu Linux 终端中经常使用命令 xdg-open。然而,有两件事让我感到厌烦: 是否可以抑制错误消息? 是否可以让命令始终完成? (也就是说,不继续运行,以便我的终端中有另一个
我想设置一个别名 alias open=xdg-open 这将取代普通的 linux open 命令,它本身是 openvt< 的符号链接(symbolic link). 我用 bash shell
有人可以提供有关如何使用(使用 GNOME Ubuntu)XDG-MIME 的示例吗?命令?即使使用文档,我也很难让任何东西正常工作。 例如,如果我想在名为 MyApp 的应用程序中注册扩展名 .mf
情况如下:我fork了用默认浏览器打开一个html文件的过程。以下是我的情况: if ((pid=fork())==0) { execlp("/usr/bin/xdg-open", "xdg-
我将 xdg-shell v5 添加到应用程序中以绘制窗口。当我发送 set_fullscreen 或 set_maximize 命令时,我在配置事件中看到正确设置的窗口状态和正确的大小,但没有任何反
我目前无法在 CentOS(CentOS Linux 版本 7.4.1708(核心版))下安装和关联文件到新的 MIME 类型。我只需要为当前用户安装,而不是为整个系统安装。 我正在执行以下步骤: 创
我是一名优秀的程序员,十分优秀!