Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > исполняемый файл


Автор: Kiorus 13.1.2005, 21:35
можно ли из <name>.py сделать САБЖ?

Автор: <setq> 14.1.2005, 01:11
да. почитай help'а по утилите freez

Автор: Amsand 14.1.2005, 07:49
Еще есть проект py2exe: http://py2exe.sourceforge.net/

Автор: merfi 16.3.2005, 14:14
Вообщето у этого Питона *.exe какойто не полноценный Его типа надо вместе с библиотекой использовать на той машине где Питон не установлен Попробывал и получил ответ Windows что не хватает еще одной *.dll Так что вот так

Автор: skalex 17.3.2005, 09:21
Цитата
Попробывал и получил ответ Windows что не хватает еще одной *.dll

Ну да, как минимум необходим python*.dll.

Автор: Гость_Merfi 17.3.2005, 13:09
MACE !!!!!!!!!!!!!!!!!
Обьясни подробнее Дело в том что при создании экзешника получактся еще и python24.dll Но при запуске на другом компе где нет PYTHON выдается сообщение что нужна библеотека MSVC7.dll или что то в этом духе Как я понимаю это библеотека VC++
У меня он установлен и на моем компе экзешник не ругается
Как быть

Автор: skalex 17.3.2005, 15:41
Сложно сказать... Может быть Ваше приложение использует какие то модули, которые требуют наличия дополнительных библиотек?
Попробуйте простейший случай.

Создаем два файла:

1. standalone.py

Код
print "This is standalone application!"


2. setup.py

Код
from distutils.core import setup
import py2exe

setup(console = ["standalone.py"])


Компилируем командой:
Код
python setup.py py2exe


Получаем две папки build и dist. Все что нам нужно, это три файла из папки dist:
* standalone.exe
* python*.dll
* library.zip

Проверял на компьютере на котором не установлен ни python ни VС++. Работало! smile

Автор: merfi 17.3.2005, 15:54
Сделал все в точности как писали не может найти библиотеку MSVCR71.dll

Автор: skalex 17.3.2005, 16:20
Это конечно очень плохо... Вероятно далек еще python от возможности создания standalone-приложений.
Надо посмотреть утилиту freez, которую к сожалению я пока не смог найти (хотя, если верить документации, то она должна быть в стандартной исталляции python в папке Tools) smile

Автор: Гость_merfi 17.3.2005, 16:27
Проверил на других компах все работает Наверное просто комп хитрый попался В любом случае огромное спасибо за помощь!!!!!!!!!!!!!!!!

Автор: skalex 17.3.2005, 16:33
Вообще все должно было работать! Я тоже проверял на нескольких компьютерах! smile

Автор: skalex 17.3.2005, 18:31
В целом картина с идеей "python -> exe" меня пока не радует... Попробуйте написать на python простейшее GUI приложение и откомпилировать его. Размеры программы будут внушающими. Я попробовал написать HelloWorld с использованием пакета wxPython. Результат: 8MB (это после упаковки)! smile
Может я что делаю не так ....

Автор: skalex 17.3.2005, 23:34
Вот еще один подобный пакет: http://www.python.org/pypi?:action=display&name=Movable%20Python&version=0.4.4

Автор: skalex 21.3.2005, 14:57
http://starship.python.net/crew/theller/moin.cgi/SingleFileExecutable

Ничего, что я тут один разговариваю... smile

Автор: Dark Elf 1.4.2005, 12:57
2 Mace - спасибо большое, очень интересная информация

А у меня ещё один вопрос - можно ли и если можно то как library.zip поместить в ехешник?

Автор: skalex 1.4.2005, 13:21
Кстати файл python*.dll можно неплохо ужать. Я использовал http://upx.sourceforge.net/.
Результат:
до упаковки 974909 байт
после упаковки 373760 байт.
Т.е. сжатие ~ на 40 %. Использовались стандартные параметры работы упаковщика.

Автор: Dark Elf 1.4.2005, 14:08
2 Mace - а по поводу моего вопроса?

Просто не хотелось бы за exe-файлом этот library.zip таскать.

Автор: skalex 1.4.2005, 14:14
2 Dark Elf, пока что я не знаю, можно ли это сделать... Попробуй почитать вот здесь: http://starship.python.net/crew/theller/moin.cgi/Py2Exe + по ссылкам. Там масса информации по применению пакета py2exe.
Добавлено @ 14:18
Стоп!!! Нашел решение!!!
Код
from distutils.core import setup
import py2exe

setup(
    console = ['standalone.py'],
    zipfile = None


Параметр zipfile=None.

Автор: Dark Elf 1.4.2005, 14:29
Mace, спасибо!

А у меня ещё 1 вопрос - зачем создаётся файл w9xopen.exe?


Автор: skalex 1.4.2005, 14:35
Если пойти по вышеприведенной ссылке, то там написано...
Цитата
w9xpopen.exe - This is needed on Win9x platform.

Для запуска приложения на платформе Win9x. Можно смело удалять! smile

Автор: megaflop 5.5.2005, 09:24
В папке с установленным Python24 есть два файла msvcp71.dll и msvcr71.dll
py2exe их не добавляет к получающимуся экзешнику... оно работает нормально и без них на WinXP например, но на других виндах "требует какие-то dll"
я просто ручками копирую эти оба файла к экзешнику и всё работает :-)))

Автор: setq 14.7.2005, 10:33
проблема:

запускаю setup.py py2exe - выдаёт ошибку
Цитата
The following modules appear to be missing
['_xlrdutils']
как говорят смелые мультяшные утки: ХЭЛП!

(target скрипт подключает пакет xlrd для чтения содержимого XLS файлов. живёт он у меня в site-packages/xlrd)

Автор: setq 14.7.2005, 19:19
значит эта... проблема решена. всем спасибо. использовал программу cx_Freeze

http://starship.python.net/crew/atuining/cx_Freeze

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)