😎 Как ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Python Π² EXE Ρ„Π°ΠΉΠ» с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ 🐍

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Python Π² .exe Ρ„Π°ΠΉΠ» с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт pyinstaller. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

  1. УстановитС pyinstaller, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:
  2. pip install pyinstaller
  3. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ находится ваш скрипт Python ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ°.
  4. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
  5. pyinstaller --onefile --icon=имя_ΠΈΠΊΠΎΠ½ΠΊΠΈ.ico имя_скрипта.py
  6. Π­Ρ‚ΠΎ создаст .exe Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ "dist" Π² вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ "имя_ΠΈΠΊΠΎΠ½ΠΊΠΈ.ico" Π½Π° имя вашСй ΠΈΠΊΠΎΠ½ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈ "имя_скрипта.py" Π½Π° имя вашСго скрипта Python.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Python Π² EXE Ρ„Π°ΠΉΠ» с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ?

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ вас, Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ студСнт! БСгодня ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Python ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² исполняСмый Ρ„Π°ΠΉΠ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° EXE ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΈΠΊΠΎΠ½ΠΊΡƒ ΠΊ Π½Π΅ΠΌΡƒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±Π΅Π· нСобходимости установки Python ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

Π¨Π°Π³ 1: Установка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… инструмСнтов

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСны Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты. Нам понадобятся Python, pip ΠΈ pyinstaller. Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ установили ΠΈΡ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

pip install pyinstaller

Π¨Π°Π³ 2: ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΏΠΈΠΈ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΠ΅Ρ€Π΅Π΄ компиляциСй вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, создайтС копию исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ вас остался ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π». Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Π·ΠΎΠ²Π΅ΠΌ эту копию "main.py".

Π¨Π°Π³ 3: ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Python ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² исполняСмый Ρ„Π°ΠΉΠ»

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ самой Π²Π°ΠΆΠ½ΠΎΠΉ части - компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

pyinstaller --onefile main.py

Π—Π΄Π΅ΡΡŒ "main.py" - это имя вашСго Ρ„Π°ΠΉΠ»Π° с исходным ΠΊΠΎΠ΄ΠΎΠΌ. ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ появится ΠΏΠ°ΠΏΠΊΠ° "dist", Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅ исполняСмый Ρ„Π°ΠΉΠ» вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π¨Π°Π³ 4: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΊ исполняСмому Ρ„Π°ΠΉΠ»Ρƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ», Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠΊΠΎΠ½ΠΊΡƒ. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ "dist" ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π΅ "icons". ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π² эту ΠΏΠ°ΠΏΠΊΡƒ Ρ„Π°ΠΉΠ» с вашСй ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ "icon.ico".

Π”Π°Π»Π΅Π΅, создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» "main.spec" Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

import sys
from PyQt5.QtGui import QIcon, QPixmap
# Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ вашСй ΠΈΠΊΠΎΠ½ΠΊΠ΅
icon_path = 'dist/icons/icon.ico'
app_icon = QIcon()
app_icon.addPixmap(QPixmap(icon_path), QIcon.Normal, QIcon.On)
# ΠŸΡƒΡ‚ΡŒ ΠΊ исполняСмому Ρ„Π°ΠΉΠ»Ρƒ
exe_path = 'dist/main.exe'
# Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ 'your_app_name' Π½Π° имя вашСго прилоТСния
sys.setrecursionlimit(10000)
a = Analysis([os.path.join(HOMEPATH, 'desktop-app', 'main.py')],
             pathex=[os.path.dirname(os.path.abspath(__file__))],
             binaries=[],
             datas=[],
             hiddenimports=['your_app_name'],
             hookspath=[], 
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=None,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=None)
exe = EXE(pyz,
          app_icon=app_icon, 
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='main',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=False,
          disable_windowed_traceback=False,
          icon=icon_path)
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='dist/main')

Π—Π΄Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄, прописанный Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ addPixmap(). Он ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ вашСй ΠΈΠΊΠΎΠ½ΠΊΠ΅ ΠΈ добавляСт Π΅Π΅ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ исполняСмому Ρ„Π°ΠΉΠ»Ρƒ.

Π¨Π°Π³ 5: ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ исполняСмого Ρ„Π°ΠΉΠ»Π° с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ компиляции вмСстС с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pyinstaller main.spec

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ компиляции Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ "dist" с исполняСмым Ρ„Π°ΠΉΠ»ΠΎΠΌ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠΊΠΎΠ½ΠΊΡƒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш Python ΠΊΠΎΠ΄ Π² исполняСмый Ρ„Π°ΠΉΠ» EXE с собствСнной ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ. Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ трСбуя ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ установки Python ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΈ создавайтС ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Python Π² .EXE β–Ί КАК?

Python Π² EXE

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ .py Π² .exe | PyInstaller

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”‘ Как Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ· PostgreSQL Π² Python: простой способ ΠΈ инструкция

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Анаконда для Python? 🐍🐍

Как Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ корпус Aerocool Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ инструкция

😎 Как ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Python Π² EXE Ρ„Π°ΠΉΠ» с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ 🐍

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Python: простая ΠΈ понятная инструкция ✨

πŸ” Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° random Π² Python? Π›Π΅Π³ΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π΅ΠΊ Π² Python: простой способ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ