Я создаю совершенно новый пакет Debian cpconverter
, который является A simple utility to change the code page of plain text based files
, из источника, опубликованного в Google Code.
Файл 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? [Смотри выше]
Ну, как я сказал в комментарии, бегая 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")
, Который объяснил и решил проблему.
Я не уверен, действительно ли это необходимо, но когда я сделал сценарий удара, я начал сценарий с этой командой «$$$$$$$ удара .sh». Единственная причина, что я упоминаю это, состоит в том, что .py расширение не находится на названии сценария в Вашей настольной пусковой установке. Может быть ничто, стоящее взгляда и попытки. Крэйг
nvidia-375
обеспечивает, конфликты с и заменяетnvidia-persistenced, xorg-driver-binary
. Это даст диспетчеру пакетов команду удалять предыдущийnvidia-*
пакеты на установке. – David Foerster 29 December 2016 в 15:22