Подскажите, возможно ли установить py2exe в виртуальное окружение?
По умолчанию, при установки py2exe из бинарников, обнаруживается питон из реестра. И при дальнейшем использовании, exe файл создается некорректно, т.к. проект находится в виртуальном окружении со своими пакетами, а py2exe использует пакеты локального питона, которых там естественно нет.
Пример.
Есть локальный питон, в котором стоит только пакет py2exe. Есть виртуальное окружение с пакетом yaml (например).
При запуске py2exe в exe файл не помещается пакет yaml (т.к. в локальном питоне его нет) и соответственно exe файл получается нерабочим.
Может есть еще какое-нибудь решение данной проблемы?
1. Можно установить все нужные пакеты в Python, который находится из реестра.
2. Можно скопировать модули как локальные для проекта (вместе со своим кодом), что бы py2exe их локально находил.
3. У py2exe есть опция includes, через которую можно указывать дополнительные модули. Предполагаю, что через sys.path у py2exe можно добавить путь для поиска.
> 1. Можно установить все нужные пакеты в Python, который находится из реестра.
Тогда нет смысла в виртуальном окружении
> 2. Можно скопировать модули как локальные для проекта (вместе со своим кодом), что бы py2exe их локально находил.
Мне кажется, что копировать вручную модули постоянно при их изменении не очень хороший варинат
Третий вариант можно попробовать.
Но я решил проблему по другому — собрал в нужном мне виртуальном окружении py2exe из исходников
Сборка из исходников в локальное окружение это почти как #2 с теми же особенностями (надо вручную собирать ещё раз когда будут изменения).
Но в любом случае я рад что проблема решена. Всё-таки, намного интереснее заниматься самой разработкой, чем на решение каких-то проблем и обходных путей для неё.