Я думал, что слышал, что py2exe был в состоянии сделать это, но я так и не понял. Кто-нибудь успешно сделал это? Могу ли я увидеть ваш файл setup.py и какие параметры командной строки вы использовали?
По сути, я думаю об этом, давая мне один исполняемый файл, который выполняет что-то вроде распаковки себя в возможно / temp и запускается.
Ответы:
PyInstaller создаст один файл .exe без каких-либо зависимостей; используйте
--onefile
опцию. Это делается путем упаковки всех необходимых общих библиотек в исполняемый файл и распаковки их перед запуском, как вы описали (РЕДАКТИРОВАТЬ: py2exe также имеет эту функцию, см . Ответ Минти )Я использую версию PyInstaller из SVN, так как последний выпуск (1.3) несколько устарел. Это работает очень хорошо для приложения, которое зависит от PyQt, PyQwt, numpy, scipy и некоторых других.
источник
Способ сделать это с помощью py2exe - использовать параметр bundle_files в вашем файле setup.py. Для отдельного файла вам нужно установить
bundle_files
значение 1,compressed
значение True и установить для параметра zipfile значение None. Таким образом, он создает один сжатый файл для удобного распространения.Вот более полное описание опции bundle_file, цитируемой непосредственно с сайта py2exe *
Вот пример setup.py:
источник
windows = [{'script': "single.py"}]
сconsole = ['single.py']
таким двойным щелчком файл откроется в окне CMD в Windows.Как упоминается в другом постере, py2exe, сгенерирует исполняемый файл + несколько библиотек для загрузки. Вы также можете добавить некоторые данные в свою программу.
Следующим шагом является использование установщика, чтобы упаковать все это в одну простую в использовании устанавливаемую / неустановляемую программу.
Я использовал InnoSetup ( http://www.jrsoftware.org/isinfo.php ) с удовольствием в течение нескольких лет и для коммерческих программ, поэтому я от всей души рекомендую его.
источник
Я был в состоянии создать один исполняемый файл со всеми ресурсами, встроенными в исполняемый файл. Я строю на окнах. так что это объяснит некоторые из вызовов os.system, которые я использую.
Сначала я попытался преобразовать все мои изображения в битовые биты, а затем все мои файлы данных в текстовые строки. но это привело к тому, что конечный файл был очень очень большой.
После недели поиска в Google я понял, как изменить скрипт py2exe для удовлетворения моих потребностей.
вот ссылка на патч на sourceforge, который я отправил, пожалуйста, оставьте комментарии, чтобы мы могли включить их в следующий дистрибутив.
http://sourceforge.net/tracker/index.php?func=detail&aid=3334760&group_id=15583&atid=315583
это объясняет все сделанные изменения, я просто добавил новую опцию в строку установки. вот мой setup.py.
Я постараюсь прокомментировать это как можно лучше. Пожалуйста, знайте, что мой setup.py сложен, потому что я получаю доступ к изображениям по имени файла. поэтому я должен хранить список, чтобы отслеживать их.
это от заставки, которую я хотел сделать.
Я использую exec для генерации моих настроек во время выполнения, их проще вырезать и вставлять.
сломать
script = py скрипт, который я хочу превратить в exe
icon_resources = значок для exe
file_resources = файлы, которые я хочу встроить в exe
other_resources = строка для встраивания в exe, в данном случае список файлов.
options = py2exe опции для создания всего в один исполняемый файл
bitmap_strings = список файлов для включения
Обратите внимание, что file_resources не является допустимым параметром, пока вы не отредактируете файл py2exe.py, как описано в ссылке выше.
В первый раз, когда я пытался разместить код на этом сайте, если я ошибаюсь, не плачь меня.
Хорошо, вот и все для setup.py, теперь волшебство должно было получить доступ к изображениям. Я разработал это приложение без py2exe, а затем добавил его позже. так что вы увидите доступ для обеих ситуаций. если папка с изображениями не может быть найдена, она пытается извлечь изображения из exe-ресурсов. код объяснит это. это часть моего класса спрайтов, и он использует DirectX. но вы можете использовать любой API-интерфейс или просто получить доступ к необработанным данным. не имеет значения
Любые вопросы не стеснялись задавать.
источник
\'file_resources': [('txt2.txt')]
он выдает ошибку (файл, который я хочу обозначить в моем .exe, называется txt2, и это файл .txt )Вы должны создать установщик, как упоминалось ранее. Хотя можно также разрешить py2exe связывать все в один исполняемый файл, установив для параметра bundle_files значение 1, а для ключевого слова zipfile - None, я не рекомендую это для приложений PyGTK.
Это потому, что GTK + пытается загрузить свои файлы данных (локальные, темы и т. Д.) Из каталога, из которого он был загружен. Поэтому вы должны убедиться, что каталог вашего исполняемого файла содержит также библиотеки, используемые GTK +, и каталоги lib, share и т. Д. Из вашей установки GTK +. В противном случае у вас возникнут проблемы с запуском приложения на компьютере, где GTK + не установлен во всей системе.
Для более подробной информации прочитайте мое руководство по py2exe для приложений PyGTK . Это также объясняет, как связать все, кроме GTK +.
источник
Мне сказали, что bbfreeze создаст один файл .EXE и новее, чем py2exe.
источник
Недавно я использовал py2exe для создания исполняемого файла для пост-рецензирования для отправки рецензий на ReviewBoard.
Это был setup.py, который я использовал
Он создал каталог, содержащий исполняемый файл и необходимые библиотеки. Я не думаю, что можно использовать py2exe, чтобы получить только один файл .exe. Если вам это нужно, вам сначала нужно использовать py2exe, а затем использовать инсталлятор какой-либо формы, чтобы сделать финальный исполняемый файл.
Нужно позаботиться о том, чтобы любые файлы egg, которые вы используете в своем приложении, нужно было разархивировать, иначе py2exe не сможет их включить. Это описано в документации py2exe.
источник
попробуйте c_x заморозить это может создать хороший автономный
источник
Нет, он не дает вам единственного исполняемого файла в том смысле, что у вас есть только один файл впоследствии - но у вас есть каталог, который содержит все необходимое для запуска вашей программы, включая exe-файл.
Я только что написал этот setup.py сегодня. Вам нужно только призвать
python setup.py py2exe
.источник