Enchantner
Ноя. 9, 2009 22:21:56
Собственно, пишу программу с поддержкой плагинов. Плагины в формате .py, лежат в отдельной папочке. Импортируются динамически функцией __import__. Вопрос - что с ними сделает py2exe? Не запихнет в экзешник? Будет возможность добавлять свои плагины, чтобы экзешник их видел на системе без установленного интерпретатора (вроде как интерпретатор запихивается в дллку вместе с проектом)? У кого есть опыт - поделитесь, пожалуйста, как лучше все реализовать и какие подводные камни.
Андрей Светлов
Ноя. 9, 2009 23:33:11
Можно сделать по разному - вопрос в том, что вам нужно?
Чтобы было в папке и лежало рядом с exe? Или внутри него - но это уже не совсем плагины?
Кстати, __import__ из файла не грузит. Так что вы, наверное, свою папку как-то подключали модификацией sys.path?
Enchantner
Ноя. 10, 2009 06:40:52
Андрей Светлов
нужно, чтобы лежали в папке рядом. Да, именно через sys.path.
goblin_maks
Ноя. 10, 2009 09:52:08
1. Если *.py модулей ограниченное заранее определенное количество, то можно их указать прямо при сборке приложения через -i(include) в setup.py
2.если к sys.path добавлен путь к каталогу с плагинами то должно их подхватывать для работы и не обязательно в py2exe указывать.
Андрей Светлов
Никогда не получалось весь проэкт запихнуть в один exe, только ехе + zip …если знаешь тайну - поделись.
igor.kaist
Ноя. 10, 2009 13:02:37
goblin_maks
2.если к sys.path добавлен путь к каталогу с плагинами то должно их подхватывать для работы и не обязательно в py2exe указывать.
+1, у меня в текущем проекте тоже так сделано… В “main.exe” лежит только запускалка для всего остального.
В pyd правда заморочки выходят. Не на всех компьютерах почему то работает импорт по неизвестным причинам…
pasaranax
Ноя. 10, 2009 19:47:33
goblin_maks
Никогда не получалось весь проэкт запихнуть в один exe, только ехе + zip …если знаешь тайну - поделись.
Если в функцию setup() добавить параметр zipfile=None, то zip не должен создаваться. Ты так делал?
goblin_maks
Ноя. 11, 2009 09:22:44
да…именно так..но тогда получался один exe + распакованый library.zip в одном каталоге..щас уже не принципиально..проэкт закончился..