Найти - Пользователи
Полная версия: Создание инсталлятора под винду
Начало » Python для новичков » Создание инсталлятора под винду
1 2
Enchantner
Собственно, вопрос не совсем по питону, даже совсем не по питону, однако ж, думаю, многие с этим сталкивались. Нужно создать удобный инсталлятор под windows для программы на питоне, включив в него при этом интерпретатор питона, PyQt4 и еще пару модулей, все в .exe. Я все присматриваюсь к NSIS, но никак не соображу, как из-под него запустить инсталляторы для питона и модулей, да потом еще и прописать переменные окружения для чужой установки, даром что питон сам этого не делает. У кого есть опыт создания подобных инсталляторов? Какую систему лучше использовать и как?
pasaranax
А нельзя скомпилить прогу со всеми модулями в один ехе и одного его запихнуть в простейший инсталлер?
Enchantner
pasaranax
Сам хотел так сделать, но вот не получается. Зависимости все вроде удовлетворил, но программа при щелчке по экзешнику просто не запускается, не выдавая никаких ошибок. При этом если запустить py-файл - работает отлично.
igor.kaist
Хм… Для начала собери нормально в py2exe, убедись в работоспособности, а потом делай инсталлер. На каком этапе проблема? Инсталлер грубо говоря, просто распихивает файлы по папочкам…
Enchantner
igor.kaist
Тут какая проблема - раньше все нормально собиралось и запускалось, но почему-то при переносе на чистую систему выдавало “Приложение некорректно настроено, переустановите его”. Сейчас же просто перестало запускаться, без всяких ошибок.
alex312
Enchantner
igor.kaist
Тут какая проблема - раньше все нормально собиралось и запускалось, но почему-то при переносе на чистую систему выдавало “Приложение некорректно настроено, переустановите его”. Сейчас же просто перестало запускаться, без всяких ошибок.
посмотрите какие dll требуются для работы программы, возможно на чистую систему необходимо установить дополнительные билиотеки из состава VisualStudio, как вариант http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
Enchantner
alex312
первым делом поставил, дело точно не в них
n2b
UP!

Хочется собрать инсталлятор с несколькими библиотеками и питоном. py2exe не предлагать - не работает.
Подскажите как сделать пожалуйста.
sanodin
http://borisnote.wordpress.com/2010/01/04/python3-in-exe/


Или
Pyinstaller
На сайте http://pyinstaller.org хостится важнейшая для нас на сегодня тулза. Она представляет собой набор скриптов, которые позволяют из обычного py-скрипта сделать exe-шник. Скачивай ее с сайта или с диска и давай потестим. Допустим, ты распаковал ее на диск D:.
Конфигурируем:

D:\pyinstaller> Configure.py

Теперь для теста в папке D:\test\ создай питоновский скрипт test.py:

print "OK"
open("ok.txt", "w").write('ok')

Создание exe-шника проходит в два этапа. Сначала скриптом Makespec. py записывается файл «spec» с параметрами «компиляции», а затем — скрипт Build.py создает непосредственно экзешник. Скрипт Makespec.py, кроме пути к py-файлу принимает много разных параметров, но нам важны лишь эти:

• «F», на выходе получим один лишь exe-шник;
• «w», не показывать консоль, без этого параметра по умолчанию программа запускается с консольным окном;
• «X», использовать UPX для сжатия exe;
• «--icon=file.ico», использовать указанную иконку.

Во время разработки желательно использовать только один параметр («F») с целью создания отладочного режима, — чтобы в результате получился один файл и окно, в котором мы бы видели свои ошибки. Проверяем и компилируем:

D:\pyinstaller> Makespec.py -F -w -X d:\test\test.py
D:\pyinstaller> Build.py d:\pyinstaller\test\test.spec

Несколько секунд ожидания… готово! Результат работы покоится в папке d:\pyinstaller\test\dist\. Наш test.exe получился размером в 2.4 Мб, и, если его запустить, то может показаться, что ничего не сработало — окна нет. Однако ok.txt создается, а значит, все отлично работает.

Запускайте .exe через ком.строку ,что бы видеть какие ошибки выдает и по мере необходимости добавляйте модули

Если надо увидеть что пишет в окне шелла и закрывается то набираем program.exe /print c:\ doc\1.txt
Ну или просто запускаем прогу ехе из ком строки питона и тогда будет видно какие ошибки выдает окно шелла при запуске проги,каких может модулей не хватает


from cx_Freeze import setup, Executable
includes = ['zlib', 'zipfile', 'gzip','zipimport']
GUI2Exe_Target_1 = Executable(
script = "adcvasc.py",
base = 'Win32GUI',
compress = False,
copyDependentFiles = True,
appendScriptToExe = False,
appendScriptToLibrary = False,
icon = None
)
setup(
name = "hello",
version = "0.1",
executables = [GUI2Exe_Target_1],
options = {"build_exe": {"optimize": 2,
"base": "Win32GUI",
"packages": "zipimport",
"copy_dependent_files": "True",
"includes": includes
}
}

)
Еще есть Nuitka,но с этим я так и не разобрался в свое время

Да и py2exe тоже можно собирать,главное правильно
Приступим к созданию exe файла. Создадим файл setup.py.

Содержание файла setup.py:

from distutils.core import setup
import py2exe
setup(console=['access.py'])

access.py – имя нашего скрипта авторизатора.

Чтобы создать ехе файл, выполним команду python setup.py py2exe.
В процесс создания ехе файла были созданы две директории: build и dist. Нам понадобится только dist.
Переходим в директорию dist. Выбираем файл access.exe и запускаем его.

при проблеме если при запуске ехе пишет типа нет модуля то добавляем модули так



from distutils.core import setup
import py2exe

setup(
windows=[{'script': 'gui.py'}],
options={
'py2exe':
{
'includes': ['lxml.etree', 'lxml._elementpath', 'gzip'],
}
}
)


в файл setup.py
sanodin
Enchantner
igor.kaist
Тут какая проблема - раньше все нормально собиралось и запускалось, но почему-то при переносе на чистую систему выдавало “Приложение некорректно настроено, переустановите его”. Сейчас же просто перестало запускаться, без всяких ошибок.

cx_Freeze FATAL Error: cannot get zipimporter instance
Сообщение может выдаваться, если в пути до файлов присутствуют не латинские символы.
Попробуйте переместить Ваш скрипт в C:\ при сборке
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB