Как создать приложение Python для Windows
Обновлено: 21.11.2024
Можете ли вы создать настольное приложение с помощью Python? Да, ты можешь. В этой статье мы узнаем, как создать настольное приложение с помощью библиотеки Python Tkinter.
В Python есть несколько библиотек, но Tkinter — одна из самых простых среди них. Итак, мы будем использовать эту библиотеку.
Как создать настольное приложение на Python? Чтобы создать настольное приложение, вам необходимо изучить основы Python, объектно-ориентированного программирования и основы библиотеки Tkinter. Tkinter – это библиотека Python с графическим интерфейсом пользователя, с помощью которой можно легко создавать настольные приложения.
Теперь давайте подробно обсудим эти темы и создадим простое настольное приложение.
Требования
Давайте подробно рассмотрим требования, и я укажу вам на некоторые полезные ресурсы.
1. Основы Python
Очевидно, что для создания настольного приложения с использованием Python необходимо знать основы Python. Я надеюсь, что вы уже знакомы с основами Python, так как пришли сюда, чтобы поднять его на новый уровень. Поэтому я не буду тратить так много времени на обсуждение основ Python.
Однако, если вы не знакомы с основами Python, вы можете просмотреть этот учебник, который я написал, и изучить основы. Если вы знаете основы, давайте перейдем к следующему требованию.
2. Объектно-ориентированное программирование
Настольные приложения в основном работают на основе объектов, поэтому для создания приложений вам необходимо знать объектно-ориентированные концепции Python. Вы должны узнать, что такое классы, объекты, методы, наследование, полиморфизм, инкапсуляция и т. д. и как они работают.
Если вы этого не знаете, не волнуйтесь. Я написал полное руководство по объектно-ориентированным концепциям Python. Но прежде чем перейти к этому, давайте создадим ваше первое настольное приложение, даже если вы ничего не знаете.
Перейдем к изучению Tkinter. Вы сможете создать простое приложение, если будете следовать вместе со мной.
3. Основы Tkinter
Пришло время изучить основы библиотеки Tkinter. Это довольно простая библиотека, и вы можете легко понять, как она работает. Лучше всего то, что вам не нужно ничего устанавливать дополнительно, чтобы использовать Tkinter. Если в вашей системе есть Python IDLE, этого достаточно. Tkinter встроен в Python IDLE.
Если вы хотите подробно изучить Tkinter, я укажу вам на одну из моих любимых статей, где вы изучите концепции и создадите три потрясающих приложения. Вы создадите приложение для закладок в социальных сетях, приложение для расчета возраста и игру «камень-ножницы-бумага». Нажмите здесь, чтобы проверить эту статью.
Простое настольное приложение с использованием Python
Теперь давайте создадим простое настольное приложение с использованием Python и Tkinter.
Чтобы использовать любую библиотеку, нам нужно сначала импортировать ее в код. Итак, давайте импортируем Tkinter как tk. Почему мы импортируем tkinter как tk? Это для удобства использования. Теперь мы можем использовать tk вместо Tkinter всякий раз, когда нам это нужно.
Следующее, что нам нужно сделать, это создать окно. Мы можем сделать это, инициализировав новый объект Tkinter с помощью метода Tk(). Это просто. Вот как мы это делаем:
Теперь у нас есть окно для нашего настольного приложения. Попробуем дать этому окну заголовок. Мы можем сделать это с помощью метода title(). Я дал название «Pythonista Planet Desktop App». Я знаю, что это странное имя. Но вы поняли, как дать название приложению.
Теперь давайте определим геометрию окна приложения. Имеется в виду ширина и высота. Мы можем сделать это с помощью метода геометрии(). Зададим ширину 600 и высоту 400.
Теперь окно готово. Давайте напечатаем что-нибудь в этом окне. Опять же, я буду бессовестно продвигать свой сайт. Давайте отобразим «Посетите Pythonista Planet, чтобы улучшить свои навыки Python» в окне. А что насчет этого?
Мы можем добавить текст, используя метод Label() Tkinter. Передайте строку, которую вы хотите отобразить, в параметр под названием «текст». Я назначаю все это переменной с именем "newlabel".
Теперь давайте поместим этот ярлык на сетку. Все окно Tkinter разделено на несколько сеток. Поместим его в верхнюю левую сетку (0,0).
Мы сделали почти все. Нет, последнее. Перед запуском любого приложения Tkinter нам нужно вызвать метод mainloop(). Если вы знаете язык C, это похоже на вызов программы main() на C. Эта основная программа выполняет все, что мы написали над ней. Давайте вызовем mainloop().
Теперь наше крошечное настольное приложение готово. Давайте запустим программу в нашем IDLE.
Ура.Мы успешно создали настольное приложение с использованием Python. Вот результат:
Я знаю, что это очень простое приложение. Но для полных новичков это довольно хорошая отправная точка. По крайней мере, вы сделали простое настольное приложение с использованием Python. Давайте опираться на это. Я предлагаю вам узнать больше о Tkinter прямо сейчас и улучшить свои навыки.
Не волнуйтесь, я укажу вам на некоторые ресурсы. Как я уже упоминал выше, я написал полное руководство по созданию настольных приложений с использованием Python и Tkinter. Нажмите здесь, чтобы перейти к этой статье. Это поможет вам изучить основы Tkinter, и вы сможете создать три продвинутых проекта.
Выполнив эти три проекта, вы можете сделать еще больше, если хотите. Прочтите эту статью, которую я написал на тему 8 идей Fun Tkinter Project. Эта статья поможет вам найти еще несколько идей для проектов. Он также покажет вам несколько полезных руководств по их реализации.
Рекомендация по курсу Tkinter
Если вы хотите научиться создавать настольные приложения с помощью Tkinter с помощью качественного видеокурса, я вам его порекомендую. Курс «Разработка графического интерфейса с помощью Python и Tkinter» на Udemy великолепен и стоит очень мало. Вы сможете освоить Tkinter, создавая такие проекты, как Snake Game, приложение Pomodoro Timer, приложение для чата и т. д. Нажмите здесь, чтобы ознакомиться с содержанием курса на Udemy.
Некоторые другие фреймворки Python для создания настольных приложений
- PyQT
- WxPython
- PyGUI
- PySimpleGUI
- Киви
Я не использовал ни одну из этих платформ. Я работал только с Tkinter. Если вы хотите узнать больше об этих платформах, я предлагаю вам прочитать эту статью.
Я предпочитаю Tkinter, так как это простая и легкая платформа. Возможно, вы поняли это из этого урока. Это довольно простой фреймворк и больше всего подходит для начинающих. Однако при желании вы можете узнать больше и изучить другие фреймворки.
Заключительные мысли
Создавать настольные приложения легко, особенно если вы программируете на Python. С помощью Tkinter вы также можете создавать расширенные настольные приложения, которые могут оказаться полезными в реальных ситуациях.
Надеюсь, эта статья помогла вам создать простое настольное приложение. Если эта статья была полезна, дайте мне знать в разделе комментариев. Кроме того, дайте мне знать, если у вас есть вопросы или сомнения. Я буду помогать вам, если смогу.
Я был бы очень признателен, если бы вы захотели поделиться этой статьей в социальных сетях. Это вдохновит меня на создание более полезных руководств, подобных этому.
Я являюсь лицом компании Pythonista Planet. Свой первый язык программирования я выучил еще в 2015 году. С тех пор я изучаю программирование и погружаюсь в технологии. На этом сайте я делюсь всем, что узнал о программировании.
11 мыслей о том, как создать настольное приложение с помощью Python
Серьезно, удивительно, я застрял, не нашел способа построить свой выпускной проект, даже не знаю, каким будет мой выпускной проект, будет ли это базовое веб-приложение или мобильное приложение,
Теперь, наконец, прочитав это, я прояснил свои понятия
Слава Богу
Хотите создать исполняемый файл из скрипта Python с помощью pyinstaller?
Если да, я покажу вам все шаги для достижения этой цели в Windows.
Шаги по созданию исполняемого файла из скрипта Python с помощью Pyinstaller
Шаг 1. Добавьте Python в путь Windows
Простым способом добавить Python в путь является загрузка последней версии Python и установка флажка «Добавить Python в PATH» в начале установки:
Шаг 2. Откройте командную строку Windows
Затем откройте командную строку Windows:
Шаг 3. Установите пакет Pyinstaller
В командной строке Windows введите следующую команду, чтобы установить пакет pyinstaller (и нажмите Enter):
Шаг 4. Сохраните скрипт Python
Теперь вам нужно сохранить скрипт Python в нужном месте.
Для иллюстрации я создал простой скрипт Python, который будет отображать «Hello World!» при нажатии кнопки:
Затем я сохранил скрипт Python в следующей папке:
C:\Users\Ron\Desktop\MyPython
Где я назвал скрипт Python как «привет»
Шаг 5. Создайте исполняемый файл с помощью Pyinstaller
Теперь вы сможете создать исполняемый файл из скрипта Python с помощью pyinstaller.
Просто откройте командную строку и введите:
cd, за которым следует место, где хранится ваш скрипт Python
В моем случае я набрал в командной строке следующее:
Вот как выглядела моя команда (не забудьте нажать Enter после того, как вы набрали место, где хранится скрипт Python на вашем компьютере):
Далее используйте следующий шаблон для создания исполняемого файла:
Поскольку в нашем примере pythonScriptName — это «hello», команда для создания исполняемого файла:
В командной строке:
После завершения нажмите Enter в последний раз.
Шаг 6. Запустите исполняемый файл
Теперь ваш исполняемый файл должен быть создан в указанном вами месте.
В моем случае я вернулся к тому месту, где изначально хранил сценарий «hello» (C:\Users\Ron\Desktop\MyPython). В этом месте было создано несколько дополнительных файлов. Чтобы найти исполняемый файл, откройте папку dist:
Теперь вы увидите исполняемый файл:
После того, как вы нажмете файл, вы сможете запустить свою программу (если вы получите сообщение об ошибке, вам может потребоваться установить распространяемый пакет Visual C++).
В нашем примере, когда вы нажмете на исполняемый файл «hello», вы увидите следующий экран с одной кнопкой:
Python используется во многих областях приложений. Вот пример.
- Указатель пакетов Python содержит тысячи сторонних модулей для Python.
Python предлагает множество возможностей для веб-разработки:
- Фреймворки, такие как Django и Pyramid.
- Микрофреймворки, такие как Flask и Bottle.
- Расширенные системы управления контентом, такие как Plone и django CMS.
Стандартная библиотека Python поддерживает множество интернет-протоколов:
И в Package Index есть еще больше библиотек:
Python широко используется в научных и числовых вычислениях:
-
представляет собой набор пакетов для математики, науки и техники. представляет собой библиотеку анализа данных и моделирования. представляет собой мощную интерактивную оболочку, которая позволяет легко редактировать и записывать рабочий сеанс, а также поддерживает визуализацию и параллельные вычисления.
- Курс Software Carpentry обучает базовым навыкам научных вычислений, проведению учебных курсов и предоставлению учебных материалов в открытом доступе.
Python — превосходный язык для обучения программированию как на начальном уровне, так и на более продвинутых курсах.
- Такие книги, как "Как думать как компьютерщик", "Программирование на Python: введение в информатику" и "Практическое программирование".
- Группа по интересам «Образование» — хорошее место для обсуждения вопросов обучения.
Библиотека Tk GUI включена в большинство двоичных дистрибутивов Python.
Некоторые наборы инструментов, которые можно использовать на нескольких платформах, доступны отдельно:
Также доступны наборы инструментов для конкретных платформ:
Python часто используется в качестве языка поддержки для разработчиков программного обеспечения, для контроля и управления сборкой, тестирования и многих других целей.
-
для контроля сборки. и Apache Gump для автоматической непрерывной компиляции и тестирования. или Trac для отслеживания ошибок и управления проектами.
Python также используется для создания систем ERP и электронной коммерции:
-
представляет собой комплексное программное обеспечение для управления, которое предлагает ряд бизнес-приложений, образующих полный набор приложений для управления предприятием. представляет собой трехуровневую платформу приложений общего назначения высокого уровня.
PSF
Python Software Foundation — это организация, стоящая за Python. Станьте участником PSF и помогите продвигать программное обеспечение и нашу миссию.
Как запустить программу Python под Windows?¶
Это не обязательно простой вопрос. Если вы уже знакомы с запуском программ из командной строки Windows, то все покажется очевидным; в противном случае вам могут понадобиться дополнительные рекомендации.
Если вы не используете какую-либо интегрированную среду разработки, в конечном итоге вам придется вводить команды Windows в так называемом «окне DOS» или «окне командной строки». Обычно такое окно можно создать из панели поиска, выполнив поиск cmd.Вы должны быть в состоянии распознать, когда вы открыли такое окно, потому что вы увидите «командную строку» Windows, которая обычно выглядит следующим образом:
Буква может быть другой, и после нее могут быть другие элементы, поэтому вы можете легко увидеть что-то вроде:
в зависимости от того, как был настроен ваш компьютер и что вы еще недавно делали с ним. Как только вы открыли такое окно, вы уже на пути к запуску программ на Python.
Вы должны понимать, что ваши скрипты Python должны обрабатываться другой программой, называемой интерпретатором Python. Интерпретатор читает ваш сценарий, компилирует его в байт-коды, а затем выполняет байт-коды для запуска вашей программы. Итак, как организовать интерпретатор для обработки вашего Python?
Во-первых, вам нужно убедиться, что ваше командное окно распознает слово «py» как инструкцию для запуска интерпретатора. Если вы открыли командное окно, попробуйте ввести команду py и нажать клавишу возврата:
Вы должны увидеть что-то вроде:
Вы запустили интерпретатор в «интерактивном режиме». Это означает, что вы можете вводить операторы или выражения Python в интерактивном режиме и выполнять или оценивать их, пока ждете. Это одна из самых сильных сторон Python. Проверьте это, введя несколько выражений по вашему выбору и увидев результаты:
Многие люди используют интерактивный режим как удобный калькулятор с широкими возможностями программирования. Если вы хотите завершить интерактивный сеанс Python, вызовите функцию exit() или, удерживая нажатой клавишу Ctrl, введите Z , а затем нажмите клавишу «Ввод», чтобы вернуться в командную строку Windows.
Вы также можете обнаружить, что у вас есть запись в меню «Пуск», например «Пуск» ‣ «Программы» ‣ Python 3.x ‣ Python (командная строка), в результате чего вы видите подсказку >>> в новом окне. Если да, то окно исчезнет после вызова функции exit() или ввода символа Ctrl-Z; Windows запускает в окне единственную команду «python» и закрывает ее, когда вы завершаете работу интерпретатора.
Теперь, когда мы знаем, что команда py распознана, вы можете передать ей свой скрипт Python. Вам нужно будет указать абсолютный или относительный путь к скрипту Python. Допустим, ваш скрипт Python находится на вашем рабочем столе и называется hello.py , а ваша командная строка открыта в вашем домашнем каталоге, поэтому вы видите что-то похожее на:
Теперь вы попросите команду py передать ваш скрипт Python, набрав py и путь к вашему скрипту:
Как сделать скрипты Python исполняемыми?¶
В Windows стандартный установщик Python уже связывает расширение .py с типом файла (Python.File) и дает этому типу файла команду открытия, запускающую интерпретатор ( D:\Program Files\Python\python.exe " %1" %* ). Этого достаточно, чтобы скрипты выполнялись из командной строки как «foo.py». Если вы предпочитаете выполнять скрипт, просто набрав «foo» без расширения, вам нужно добавить .py в переменную среды PATHEXT.
Почему Python иногда так долго запускается?¶
Обычно Python запускается очень быстро в Windows, но иногда появляются сообщения об ошибках, из-за которых Python неожиданно начинает долго запускаться. Это вызывает еще большее недоумение, поскольку Python будет нормально работать в других системах Windows, которые настроены одинаково.
Проблема может быть вызвана неправильной настройкой программного обеспечения для проверки на вирусы на проблемном компьютере. Известно, что некоторые антивирусные сканеры создают дополнительные затраты на запуск на два порядка, если сканер настроен на отслеживание всех операций чтения из файловой системы. Попробуйте проверить конфигурацию программного обеспечения для сканирования на вирусы в ваших системах, чтобы убедиться, что они действительно настроены одинаково. McAfee, настроенный на сканирование всех операций чтения файловой системы, является конкретным нарушителем.
Как создать исполняемый файл из скрипта Python?¶
См. раздел Как создать автономный двоичный файл из скрипта Python? список инструментов, которые можно использовать для создания исполняемых файлов.
Является ли файл *.pyd таким же, как DLL?¶
Да, файлы .pyd — это библиотеки DLL, но есть несколько отличий. Если у вас есть DLL с именем foo.pyd, она должна иметь функцию PyInit_foo(). Затем вы можете написать Python «import foo», и Python будет искать foo.pyd (а также foo.py, foo.pyc) и, если найдет, попытается вызвать PyInit_foo() для его инициализации. Вы не связываете свой .exe с foo.lib, так как это приведет к тому, что Windows потребует наличия библиотеки DLL.
Обратите внимание, что путь поиска foo.pyd — это PYTHONPATH, а не тот же путь, который Windows использует для поиска foo.dll. Кроме того, foo.pyd не требуется для запуска вашей программы, тогда как если вы связали свою программу с dll, dll требуется. Конечно, foo.pyd требуется, если вы хотите сказать import foo . В DLL связь объявляется в исходном коде с помощью __declspec(dllexport) . В .pyd связь определяется в списке доступных функций.
Как встроить Python в приложение Windows?¶
Встраивание интерпретатора Python в приложение для Windows можно описать следующим образом:
Не встраивайте Python напрямую в свой .exe-файл. В Windows Python должен быть DLL для импорта модулей, которые сами являются DLL. (Это первый ключевой недокументированный факт.) Вместо этого дайте ссылку на python NN .dll ; обычно он устанавливается в C:\Windows\System . NN — это версия Python, число, например «33» для Python 3.3.
Связаться с Python можно двумя способами. Связывание во время загрузки означает связывание с python NN .lib , а связывание во время выполнения означает связывание с python NN .dll . (Общее примечание: python NN .lib — это так называемая «импортная библиотека», соответствующая python NN .dll. Она просто определяет символы для компоновщика.)
Связывание во время выполнения значительно упрощает варианты связывания; все происходит во время выполнения. Ваш код должен загрузить python NN .dll с помощью подпрограммы Windows LoadLibraryEx(). В коде также должны использоваться подпрограммы доступа и данные в python NN .dll (то есть Python C API) с использованием указателей, полученных подпрограммой Windows GetProcAddress(). Макросы могут сделать использование этих указателей прозрачным для любого кода C, который вызывает подпрограммы в C API Python.
Примечание Borland: сначала конвертируйте python NN .lib в формат OMF, используя Coff2Omf.exe.
Если вы используете SWIG, легко создать «модуль расширения» Python, который сделает данные и методы приложения доступными для Python. SWIG позаботится обо всех мелких деталях за вас. В результате получается код C, который вы связываете в с вашим .exe-файлом (!) Вам _не_ нужно создавать DLL-файл, и это также упрощает компоновку.
SWIG создаст функцию инициализации (функция C), имя которой зависит от имени модуля расширения. Например, если имя модуля — leo, функция инициализации будет называться initleo(). Если вы используете теневые классы SWIG, то функция инициализации будет называться initleoc(). Это инициализирует в основном скрытый вспомогательный класс, используемый теневым классом.
Причина, по которой вы можете связать код C на шаге 2 с файлом .exe, заключается в том, что вызов функции инициализации эквивалентен импорту модуля в Python! (Это второй ключевой недокументированный факт.)
Короче говоря, вы можете использовать следующий код для инициализации интерпретатора Python с вашим модулем расширения.
Есть две проблемы с Python C API, которые станут очевидными, если вы используете компилятор, отличный от MSVC, компилятор, используемый для сборки pythonNN.dll.
Проблема 1. Так называемые функции «очень высокого уровня», которые принимают аргументы FILE *, не будут работать в среде с несколькими компиляторами, поскольку представление структуры FILE в каждом компиляторе будет разным. С точки зрения реализации это функции очень _низкого_ уровня.
Проблема 2: SWIG создает следующий код при создании оболочек для пустых функций:
Увы, Py_None — это макрос, который заменяется ссылкой на сложную структуру данных с именем _Py_NoneStruct внутри pythonNN.dll. Опять же, этот код не будет работать в среде с несколькими компиляторами. Замените такой код на:
Возможно, можно использовать команду SWIG %typemap для автоматического внесения изменений, хотя мне не удалось заставить ее работать (я полный новичок в SWIG).
Использование сценария оболочки Python для создания окна интерпретатора Python из вашего приложения для Windows не является хорошей идеей; результирующее окно не будет зависеть от оконной системы вашего приложения. Скорее вы (или класс wxPythonWindow) должны создать «родное» окно интерпретатора. Это окно легко подключить к интерпретатору Python. Вы можете перенаправить ввод-вывод Python на _любой_ объект, который поддерживает чтение и запись, поэтому все, что вам нужно, — это объект Python (определенный в вашем модуле расширения), который содержит методы read() и write().
Как запретить редакторам вставлять вкладки в исходный код Python?¶
Часто задаваемые вопросы не рекомендуют использовать вкладки, а руководство по стилю Python, PEP 8, рекомендует 4 пробела для распространяемого кода Python; это также режим Python по умолчанию для Emacs.
В любом редакторе смешивать табуляции и пробелы — плохая идея. MSVC ничем не отличается в этом отношении и легко настраивается для использования пробелов: выберите Инструменты ‣ Параметры ‣ Вкладки, а для типа файла «По умолчанию» установите «Размер табуляции» и «Размер отступа» на 4 и выберите «Вставить пробелы». переключатель.
Python вызывает IndentationError или TabError, если смешанные табуляции и пробелы вызывают проблемы с начальными пробелами. Вы также можете запустить модуль tabnanny для проверки дерева каталогов в пакетном режиме.
Как проверить нажатие клавиши без блокировки?¶
Используйте модуль msvcrt. Это стандартный модуль расширения для Windows. Он определяет функцию kbhit(), которая проверяет наличие нажатия на клавиатуру, и функцию getch(), которая получает один символ, не повторяя его.
Читайте также: