Форум сайта python.su
0
Собственно, вопрос не совсем по питону, даже совсем не по питону, однако ж, думаю, многие с этим сталкивались. Нужно создать удобный инсталлятор под windows для программы на питоне, включив в него при этом интерпретатор питона, PyQt4 и еще пару модулей, все в .exe. Я все присматриваюсь к NSIS, но никак не соображу, как из-под него запустить инсталляторы для питона и модулей, да потом еще и прописать переменные окружения для чужой установки, даром что питон сам этого не делает. У кого есть опыт создания подобных инсталляторов? Какую систему лучше использовать и как?
Отредактировано (Ноя. 16, 2009 00:15:35)
Офлайн
0
А нельзя скомпилить прогу со всеми модулями в один ехе и одного его запихнуть в простейший инсталлер?
Офлайн
0
pasaranax
Сам хотел так сделать, но вот не получается. Зависимости все вроде удовлетворил, но программа при щелчке по экзешнику просто не запускается, не выдавая никаких ошибок. При этом если запустить py-файл - работает отлично.
Отредактировано (Ноя. 16, 2009 10:01:30)
Офлайн
3
Хм… Для начала собери нормально в py2exe, убедись в работоспособности, а потом делай инсталлер. На каком этапе проблема? Инсталлер грубо говоря, просто распихивает файлы по папочкам…
Отредактировано (Ноя. 16, 2009 10:26:47)
Офлайн
0
igor.kaist
Тут какая проблема - раньше все нормально собиралось и запускалось, но почему-то при переносе на чистую систему выдавало “Приложение некорректно настроено, переустановите его”. Сейчас же просто перестало запускаться, без всяких ошибок.
Офлайн
0
Enchantnerпосмотрите какие dll требуются для работы программы, возможно на чистую систему необходимо установить дополнительные билиотеки из состава VisualStudio, как вариант http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
igor.kaist
Тут какая проблема - раньше все нормально собиралось и запускалось, но почему-то при переносе на чистую систему выдавало “Приложение некорректно настроено, переустановите его”. Сейчас же просто перестало запускаться, без всяких ошибок.
Офлайн
0
alex312
первым делом поставил, дело точно не в них
Офлайн
0
UP!
Хочется собрать инсталлятор с несколькими библиотеками и питоном. py2exe не предлагать - не работает.
Подскажите как сделать пожалуйста.
Офлайн
31
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 создается, а значит, все отлично работает.
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
}
}
)
Приступим к созданию 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 (Май 26, 2012 11:00:04)
Офлайн
31
Enchantner
igor.kaist
Тут какая проблема - раньше все нормально собиралось и запускалось, но почему-то при переносе на чистую систему выдавало “Приложение некорректно настроено, переустановите его”. Сейчас же просто перестало запускаться, без всяких ошибок.
Офлайн