Невозможно получить рабочий лаунчер рабочего стола для программы на Python

Я создаю совершенно новый пакет Debian cpconverter, который является A simple utility to change the code page of plain text based files, из источника, опубликованного в Google Code.

1125 Все прошло хорошо. Однако я не могу получить работающую панель запуска.

Файл Python cpConverter.py хранится в папке /usr/share/cpconverter/cpconverter/.

У меня есть Shell Script с именем cpconverter в папке /usr/bin/, который гласит:

#!/bin/sh

python /usr/share/cpconverter/cpconverter/cpConverter.py

Desktop Launcher cpconverter.desktop прост

[Desktop Entry]
Version=0.5
Encoding=UTF-8
Name=Code Page Converter
Name[en_US]=Code Page Converter
Comment=A simple utility to change the code page of plain text based files
Type=Application
Exec=/usr/bin/cpconverter
Icon=cpconverter
Terminal=false
StartupNotify=true
Categories=Utility;

Однако это не запускается.

Я проверил, что установленный cpConverter.py работает нормально, запустив его:

$ python /usr/share/cpconverter/cpconverter/cpConverter.py

Затем программа запускалась в некоторых случаях. После нажатия на панель запуска она часто перестает работать.

Однако файл cpConverter.py в структуре здания пакета всегда работает, например,

$ python cpconverter-0.5/debian/cpconverter/usr/share/cpconverter/cpconverter/cpConverter.py

Я пытался набрать ту же командную строку из терминала, и затем я получил множество неслыханных ошибок (по крайней мере, для меня):

$ cpconverter
/usr/bin/cpconverter: 3: /usr/bin/cpconverter: pyhton: not found
$ 
$ pyhton /usr/share/cpconverter/cpconverter/cpConverter.py
No command 'pyhton' found, did you mean:
 Command 'python' from package 'python-minimal' (main)
pyhton: command not found
$

Затем я попытался взять рабочую Пример для пакета convertall, который для его Shell Script использует:

#!/bin/sh

exec /usr/bin/python3 /usr/share/convertall/convertall.py "$@"

Из Терминала я бы успешно запустил его с:

$ python3 /usr/share/convertall/convertall.py "$@"

Затем я изменил Shell Script в в соответствии с прочитанным:

exec /usr/bin/python2 /usr/share/cpconverter/cpConverter.py "$@"

В результате все еще остается то, что Desktop Launcher не работает ... некоторые песочные часы и ничего. Однако любая из этих трех командных строк всегда запускает программу:

$ python2 /usr/share/cpconverter/cpconverter/cpConverter.py "$@"
$ /usr/bin/cpconverter
$ cpconverter

Права доступа для cpconverter.desktop являются стандартными:

$ ls -l /usr/share/applications/clipgrab.desktop
-rw-r--r-- 1 root root 626 Dec  9  2014 /usr/share/applications/clipgrab.desktop

Почему тогда Desktop Launcher не может запустить программу ? Что не так с моим Desktop Launcher? [Смотри выше]

0
задан 9 October 2015 в 03:23

2 ответа

Ну, как я сказал в комментарии, бегая Dash Script от /usr/bin/ справочник, как настольная пусковая установка делает, подведенный с этой ошибкой Пайтона:

/usr/bin$ cpconverter
Traceback (most recent call last):
  File "/usr/share/cpconverter/cpconverter/cpConverter.py", line 342, in <module>
    app = cpConverter()
  File "/usr/share/cpconverter/cpconverter/cpConverter.py", line 74, in __init__
    builder.add_from_file("./gui/gui.xml")
glib.GError: Failed to open file './gui/gui.xml': No such file or directory
$ 

, бегая cpconverter в быстром в другое место в домашней папке или в /usr/share/cpconverter/cpconverter (то, где coCPnverter.py файл) имел бы успех.

Тогда было очевидно, что преступник был ./ в cpConverter.py файл.

я просто создал участок allow-launch-from-usr-bin-script.patch, чтобы поместить абсолютный путь (когда-то упакованный) вместо относительного пути:

builder.add_from_file("/usr/share/cpconverter/cpconverter/gui/gui.xml")

, Который объяснил и решил проблему.

0
ответ дан 9 October 2015 в 13:23
  • 1
    Вы могли бы хотеть добавить, что nvidia-375 обеспечивает, конфликты с и заменяет nvidia-persistenced, xorg-driver-binary. Это даст диспетчеру пакетов команду удалять предыдущий nvidia-* пакеты на установке. – David Foerster 29 December 2016 в 15:22

Я не уверен, действительно ли это необходимо, но когда я сделал сценарий удара, я начал сценарий с этой командой «$$$$$$$ удара .sh». Единственная причина, что я упоминаю это, состоит в том, что .py расширение не находится на названии сценария в Вашей настольной пусковой установке. Может быть ничто, стоящее взгляда и попытки. Крэйг

0
ответ дан 9 October 2015 в 13:23
  • 1
    Как упомянуто в комментариях, предложите способ проверить, какие драйверы на самом деле установлены на компьютере. – wigging 29 December 2016 в 05:36

Другие вопросы по тегам:

Похожие вопросы: