Я хочу спросить, есть ли у кого-то еще решение или подсказка для решения моей проблемы.
Я использую для разработки на Python редактор PyCharm. Всякий раз, когда я запускаю свой код, который содержит os.system("xdg-open file.pdf")
из PyCharm, все работает как положено. Но всякий раз, когда я упаковывал свой код с помощью PyInstaller, эта команда не выполнялась без какого-либо сообщения об ошибке или подсказки, что происходит, что делать или с чего начать поиск, чтобы решить эту проблему (я знаю, что команда os.system()
не перехватила ни одно сообщение от запущенного команда, но никакой подсказки нигде нет, вообще ).
Я точно все перепробовал, что можно было сделать. Я пробовал другие пусковые установки, которые я нашел, как exo-open
, mimeopen
; Я попытался запустить из кода Python внешний сценарий bash
, содержащий команды, упомянутые выше в различных комбинациях, я попытался создать внешний двоичный файл Python (используя PyInstaller), который выполняет только команду os.system("xdg-open" + sys.argv[1])
(потому что я вызываю по другому место моей программы внешних двоичных файлов, и она отлично работает), нигде нет понятия, почему это не работает.
Когда я пытаюсь использовать чистую команду xdg-open file.pdf
из bash, все работает хорошо. *)
Поскольку я делаю свою программу для Linux и Windows, в Windows такой неисправности нет. Там я использую для просмотра файла PDF команду os.system("start './file.pdf'")
и это происходит.
Я не уверен, что является причиной этой проблемы, это может быть проблема PyInstaller, а также системная проблема.
У кого-нибудь есть подобный опыт и, возможно, какая-то подсказка или решение? Ваши ответы будут очень приветствоваться и большое спасибо!
Конфигурация:
- Linux Mint 18.2 64bit (ядро 4.8.0-53-generic)
- Графическая среда Xfce4
- Python 2.7
- PyCharm 2018 (последняя версия)
- Bash 4,3
- PyInstaller 3.4 (устанавливается с помощью
pip
)
Компьютер - Lenovo ThinkPad T410.
*) Может быть, это может помочь или смущает больше, но в любом случае: в процессе тестирования я попытался также запустить из своей программы чистый терминал, чтобы передать команду xdg-open
вручную. Но когда я это сделал, сообщения об ошибке не было, но ничего не происходит. Я также попытался запустить просмотрщик PDF напрямую, с обычного терминала все работает хорошо, но с терминала, открытого моей программой, он запускает просмотрщик PDF, но с количеством ошибок, связанных с GTK, по поводу отсутствующих значков (а file.pdf
не открывался как хорошо), поэтому обычно происходит сбой (не было значка и файла не было открыто (кстати, с сообщением об ошибке типа «Открыть mimetype application / octet-stream fails»)). Такое поведение приводит к некоторой проблеме пользователя / пути / среды, но, тем не менее, я совершенно не понимаю, что происходит и как это исправить.
P.S. Я, конечно, сначала попробовал дядю Google, но безуспешно. Да, возможно, что я не нашел ему правильного вопроса, в таком случае, пожалуйста, предложите мне его;)