Распространение написанного на Python исполняемого файла с помощью veusz - PullRequest
0 голосов
/ 01 ноября 2011

Я хотел бы распространять приложение, написанное на python, в виде файла .exe. Я уже смог сделать это с помощью py2exe, но теперь я включил библиотеку veusz в свой код. В идеале моя программа должна открывать сюжет veusz (как это происходит на моем компьютере, на котором установлены python, numpy и т. Д.). Тем не менее, я хочу распространять исполняемый файл, который делает это без необходимости установки Python.

Когда я пытаюсь запустить мой setup.py с py2exe, все идет хорошо, и исполняемый файл построен. Однако, как только приложение запускается и достигает точки, где оно должно отображать график, оно отправляет:

Ошибка времени выполнения: невозможно найти исполняемый файл veusz по системному пути.

Можно ли это исправить, не устанавливая кучу вещей на компьютеры моих клиентов? Это возможно? И если мне нужно что-то установить, какое минимальное количество программного обеспечения мне нужно установить?

1 Ответ

1 голос
/ 03 ноября 2011

Veusz запускает свой пользовательский интерфейс в отдельном процессе python, чтобы он не блокировал python. Если вы посмотрите на veusz / embed.py, он попытается запустить python или исполняемый файл veusz. Вам нужно изменить embed.py, чтобы запустить .exe (sys.executable), если он был заморожен, вместо veusz и передать какой-то специальный параметр, который ваша программа интерпретирует для запуска veusz.embed_remote.runremote.

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

...