Member 12419675 Ответов: 1

Как скомпилировать Python 3.3+ в байтовый код и приостановить программу


Я только начал изучать python после изучения некоторых C++14 и столкнулся с проблемой. Я использовал правильную версию py2exe для успешной компиляции скриптов python 2.7 в автономные исполняемые файлы, которые также приостанавливаются перед закрытием программы, чтобы пользователь мог просматривать выходные данные. Я также смог создать исполняемый файл байт-кода python 3.3, используя соответствующую версию py2exe, но он упорно отказывается делать паузу перед закрытием. Я использовал правильный синтаксис для python 3, чтобы приостановить программу, где должно работать следующее: x = input ("нажмите enter")
Но программа все равно не останавливается перед закрытием после компиляции в файл .pyc.
Пожалуйста, помогите мне выполнить эту задачу, я очень ценю всю вашу помощь. С Уважением, Адам.

Что я уже пробовал:

Я посмотрел, скачал и установил правильную версию py2exe для компиляции python 3.3+. Я также убедился, что использовал правильный синтаксис для python 3.3, но безуспешно. Я не могу понять, что я делаю неправильно, и был бы благодарен за любую помощь в этом вопросе. Спасибо.

Patrice T

Попробуйте показать связанный код.

Richard MacCutchan

Вам нужно добавить немного отладочного кода, чтобы попытаться изолировать происходящее. Никто другой не может догадаться, что делает ваша программа.

1 Ответов

Рейтинг:
4

VISWESWARAN1998

Сначала проверьте свой код (если он правильный, выполните следующие действия, иначе разместите свой код на своем вопросе)

Из моего опыта:

В настоящее время я использую Python 3.5.2, а Py2exe больше подходит для Python 2, но я обнаружил несколько трудностей, так как он не имеет хорошей поддержки Python -3, особенно версий 3.5. Я не могу понизить свой Python 3.5 до 2.7 для этой простой вещи.

Что я сделал, чтобы решить эту проблему, так это то, что я скачал библиотеку под названием PyInstaller
что обеспечивает отличную поддержку как 2.x, так и 3.x версий python.

Я бы посоветовал вам использовать то же самое для компиляции python в двоичные файлы. Вы можете компилировать автономные exe-файлы для windows, пакеты для MAC(у меня нет mac book, но я знаю, что Pyinstaller способен это сделать), а также для linux.

Не стесняйтесь задавать вопросы.

ОБНОВЛЕНИЕ:
1. Построить двоичные файлы для Windows с Python-скрипт для этого надо иметь установленную PyWin32 в любой архитектуре.

Python for Windows Extensions-Browse /pywin32/Build 220 at SourceForge.net[^]

выберите подходящую вам архитектуру Windows и установите ее по ссылке, приведенной выше.

2. Загрузите Pyinstaller(не устанавливайте его с помощью PIP или easy_install и т. д.), загрузите сжатый пакет и распакуйте его в папку ваш выбор Вы можете извлечь его в любом диске, который вы хотите.

3. После извлечения вы найдете папку Pyinstaller, откройте ее.

4. Подумайте example.py это имя скрипта, который вы используете для создания исполняемого файла.

5. Откройте папку Pyinstaller и вставьте example.py там(есть и другие способы обойтись без вставки его сюда, но этот самый простой).

6. Нажмите СДВИГ и нажмите правую кнопку мыши, и ваша мышь(вы не должны отпускать кнопку shift при щелчке правой кнопкой мыши) вы найдете там опцию Открыть командное окно.

7. выберите его, откроется командная строка.

Если вы установили Python в качестве переменных среды, следуйте 8 (a), иначе следуйте 8 (b)

8 (а). Введите эту команду

Pyinstaller.py --onefile example.py

example.py это название вашего сценария.

8 (b). Введите эту команду

Путь питона Pinstaller.py --onefile example.py

Замените путь из питона на вашем пути Python

пример, показанный для Python 3.5.2:
C:\Users\User\AppData\Local\Programs\Python\Python35-32\python.exe Pinstaller.py --onefile example.py

Вы найдете exe-файл, помещенный в папку dist.

Обновление 2:
Если вы используете две версии python, выполните следующие действия.

1. Убедитесь, что вы установили правильную версию PyWin32 как для версии 2.7, так и для версии 3.5.2.

2. Извлечь папку Pyinstaller(я думаю, вы уже извлекли )

3. переменная окружения может быть установлена на Python 2.7, поэтому лучше следовать шагам с 1 по 7 и следовать 8 (b) то есть используйте ваше местоположение Python3 для сборки исполняемого файла


Если вы все еще сталкиваетесь с какими-либо проблемами, не стесняйтесь спрашивать меня.


Member 12419675

Привет, VISWESWARAN1998, у меня был некоторый успех, но я столкнулся с другой проблемой. Однако я смог загрузить, установить и попытаться использовать pyinstaller; папка dist была пуста даже после использования команды --onefile, хотя все ожидаемые файлы находились в папке сборки. Я не знаю, как решить эту проблему. Я искренне ценю вашу помощь, Адам.

[no name]

Обновленное решение для Вас, пожалуйста, взгляните на него, и если вы столкнетесь с какими-либо проблемами, все еще не стесняйтесь оставить комментарий здесь.

Member 12419675

Здравствуйте, я не могу выразить вам, как я ценю всю вашу терпеливую помощь. Я установил python в свои переменные среды, но при попытке 8(a) получаю следующую ошибку: Ошибка импорта: нет модуля с именем 'pywint ypes'

Это не опечатка, а точное полученное сообщение об ошибке. Я искал и пробовал много вещей, а также проб и ошибок, но до сих пор ничего не работало. Спасибо Вам за помощь и большое уважение от моего коллеги-программиста, искреннего Адама.

[no name]

Я совершенно уверен, что вы должны были установить неправильную версию PyWin32, дайте мне вашу системную архитектуру и версию python, позвольте мне выбрать правильную для вас.

Member 12419675

Я нахожусь на 64-битном Dell, использую windows10 и python 3.5.2

Member 12419675

Кроме того, хотя я на самом деле не устанавливал Pyinstaller с помощью pip или easy_install, я установил Pyinstaller с помощью pip-Win_1.8.exe .
Тем не менее, я извлек Pyinstaller, как вы проинструктировали, и затем последовал этим шагам.

[no name]

https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/pywin32-220.win-amd64-py3.5.exe/download

[no name]

Вы скачали это?

Member 12419675

Да, это тот самый, которым я пользовался. 64-битная версия для windows и python 3.5+. Но у меня также есть другая версия программы PyWin32 для python 2.7. как я могу убедиться, что Pyinstaller настроен на python 3.5+???я пытался удалить PyWin32 для python 2.7, но уже установил Pyinstaller. Нужно ли мне удалить Pyinstaller и переустановить его???

[no name]

Я обновил решение для вас(см. обновление два), если вы все еще сталкиваетесь с проблемами, не стесняйтесь спрашивать меня

Member 12419675

Привет, VISWESWARAN1998, я решил свою проблему. Я не думаю, что вы поверите этому человеку. После двух с половиной месяцев поиска вещей, проб и ошибок и экспериментов я наткнулся на случайный пост, где аналогичная проблема с ошибкой утверждения была создана другим программистом, включая точку, да, простую маленькую точку. в его имени файла. Он изменил его на другого персонажа, и это решило проблему. Я вспомнил, что у меня в имени файла была точка. Я изменил его на _ и бац! Задача решена. Я чрезвычайно благодарен вам за то, что вы были так терпеливы и помогли мне. Вот что должны делать товарищи-программисты. Ваш отличный. Спасибо, С уважением, «Адам».

Member 12419675

О, и я хочу, чтобы вы знали, вы мне очень помогли. Без вашей помощи я бы не знал, как использовать Pyinstaller с его лучшей поддержкой Python 3, которая позволила мне скомпилировать программу python, которая также делает паузу, чтобы пользователь мог просматривать выходные данные. Большое вам спасибо, поговорим позже :)

[no name]

Мы всегда рады вам! Попробуйте использовать другие опции PyInstaller, установив значок в свой exe-файл, добавив файл лицензии в свое приложение и т. д. и т. д., хорошего вам дня!