LINUX.ORG.RU

[Python] Как вы определяете пути к ресурсам своих программ?

 


0

0

Под ресурсами понимаются всякие иконки, glade-файлы (в случае PyGTK) и прочая более специфичная радость…

В голове вертятся несколько идей и хочется определить наиболее верный вариант. Можно парсить определенный набор путей (/usr/share/appname, /usr/local/share/appname), но при этом не получается устанавливать программу с произвольным prefix (например в /opt). Можно при установке записывать путь к ресурсам или определять prefix из переменной __file__, но тогда у нас появляется глобальная переменная, а это вроде как не очень красиво.

Короче как данный вопрос решаете конкретно вы?

★★★★★

autotools и использование подстановок типа @prefix@, @datadir@ и т.д.

ananas ★★★★★
()

А конфиг файл со всеми путями задаваемый в командной строке или с известным именем ищущийся в стандартных местах (например в каталогах: ./, ./etc, /etc, /etc/opt и т.д.), чем не подходит. Инсталятор будет генерить конфиг при установке и настроит их хоть на /opt хоть на / ;)

Alesh
()
Ответ на: комментарий от Alesh

Никто не спорит, можно придумать еще десяток способов. Для это и создал эту тему, чтобы определить наиболее красивый и правильный.

Только глухо здесь почему то… Как лиспосрачи устраивать так нет проблем, а вот просишь поделиться опытом и все сразу в кусты…

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от balodja

>Ага, а потом запускаю скриптом? :)

А в чем проблема? Коротенький скрипт в /usr/bin дергающий функцию из site-packages, все вроде стандартно?

fat_angel ★★★★★
() автор топика

Использую пути относительно директории в которой лежит запускаемый файл программы (sys.argv[0] в питоне) и текущего каталога если там не абсолютный путь. Это позволяет запускать программу из распакованного архива безо всяких настроек.

В принципе если буду писать что-то совсем «серьезное» то буду использовать комбинацию путей, конфигов и относительных от имени путей, плюс чтото еще, возможно. Из них формировать список возможного нахождение ресурсов и проверять.

Эти все сложности нужны потому что в разных юзкейсах удобнее разные способы, знаю по себе. Особенно создателям пакетов и админам которые будут использовать.

kernel ★★☆
()

Для пакета - генерю маленький python-скрипт, в котором жестко заданы пути и котороый просто вызывает основную функцию программы.

tailgunner ★★★★★
()
Ответ на: комментарий от fat_angel

>Как лиспосрачи устраивать так нет проблем, а вот просишь поделиться опытом и все сразу в кусты…

Ну так всё правильно! Чтобы устраивать лиспо- и прочие срачи, опыт по большому счёту и не нужен :)

Для это и создал эту тему, чтобы определить наиболее красивый и правильный

Глянуть исходники gajim, sonata, не?

srj ★★
()
Ответ на: комментарий от srj

>Глянуть исходники gajim, sonata, не?

Если здесь истины не найду то конечно придется смотреть, но лениво… И опять же интересно какой python-проект (если быть совсем точным то PyGTK) имеет наиболее красивый и правильный код

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Здрасте! А чито я тебе плохой способ посоветовал. Годный кстати и под топиком и подофтопиком тоже )))

Alesh
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.