Как я могу найти дополнительные файлы, установленные с моим пакетом python, из включенного скрипта?

1

Я построил пакет python, который устанавливает с несколькими внешними файлами. Мне нужно иметь возможность читать эти файлы из сценария, который устанавливается с пакетом. Я вижу, что я могу использовать __file__ внутри моего скрипта, и он возвращает что-то вроде этого:

/Library/Python/2.6/site-packages/M5-0.3.0-py2.6.egg/EGG-INFO/scripts/..

и поэтому я могу перейти туда, где были установлены файлы (верхний уровень каталога.egg), но я ищу более "стандартный" способ определить, где мой пакет установлен.

Теги:
distutils
setuptools

2 ответа

2

Вам может понадобиться что-то вроде функции pkgutil.get_data.

Он будет считываться в ресурсах относительно __file__ если ваш пакет живет как стандартная структура каталогов пакетов python на диске, и я думаю, что он будет читать ресурсы из застрявшего яйца (хотя я сам не использовал его для себя).

1

does os.getcwd() доставит вас в любом месте? (он возвращает "текущий рабочий каталог", как правило, тот, из которого вы проиграли основной скрипт)

что было бы неправильно при использовании __file__? Если вы ищете какую-либо функцию более высокого уровня, она, вероятно, будет использовать подобный метод.

import os
d = os.path.dirname(__file__[:__file__.rindex(os.extsep+'egg')])

дает вам каталог; "перейти" к нему с помощью

os.startfile(d)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню