Я быстро использую ide и у меня проблемы с filepath. Где разместить дополнительные файлы, необходимые для приложения? Когда я добавлю дополнительные файлы в папку / data / после установки приложения, каким будет новый путь? Он хранится в /opt/extras.ubuntu.com/projectName/share или в / usr / share /? Согласно правилам вскрытия приложений, оно должно быть в опциях.
Приложению потребуется разрешение root для записи в свои файлы? Как получить доступ к путям файлов внутри кода Python?
Я думаю, что функция get_data_path () в [appname] _lib / [appname] config.py настроена именно на это. Поэтому в Python импортируйте эту функцию в начале вашего файла:
from [appname]_lib.[appname]config.py import get_data_path
Затем, когда вы захотите использовать файл в вашем каталоге данных, вы можете получить его путь следующим образом:
data_path = get_data_path()
filepath = os.path.join(data_path, 'mydatafile.css')
Я задавался вопросом, как лучше всего это сделать в прошлом, и смотрел на пример на http://developer.ubuntu.com для медиаплеера (в наши дни ссылка кажется мертвой) , они используют модуль помощников, который есть по умолчанию при быстром использовании.
from <appname>_lib import helpers
def get_path(self):
file_path = helpers.get_media_file("filename.ext")
file_path = file_path.replace("file:///", "")
return file_path
Если вы посмотрите на реальный код помощников, он просто смотрит в папку мультимедиа, из папки данных.
Возвращает путь к файлу с префиксом «file: ///», который не всегда принимается, поэтому удаление приведено выше.
Когда вы хотите записать пути к файлам, вы должны записать их относительным образом. Итак, в Glade вы должны написать
../media/icon.png
С двумя точками (.) Вы вернетесь в папку /data
. Затем вы говорите, чтобы перейти в / media и открыть icon.png. Вы должны сделать это, потому что файлы Glade .ui хранятся в /projectname/data/ui/
- отсюда вам нужно вернуться назад на 1, а затем в папку /media
.
При записи файла .desktop.in (например, запись рабочего стола / приложения), например, для включения значка, вы должны написать его так:
./data/media/icon.png
Позаботьтесь о том, чтобы написать только одну точку.
О, что я забыл: приложению не нужен root-доступ для записи в файлы, и он быстро выполняет всю важную упаковку (вещь с / opt /) автоматически. Вам не нужно заботиться о /opt/.
Я надеюсь, что смогу помочь вам с вашими вопросами.
PS: обратите внимание, что встреча разработчиков приложений для Ubuntu окончена!