>  기사  >  백엔드 개발  >  Python pyinstaller 라이브러리를 설치하고 구성하는 방법

Python pyinstaller 라이브러리를 설치하고 구성하는 방법

WBOY
WBOY앞으로
2023-05-25 18:58:212247검색

Brief

pyinstaller 모듈은 Python 환경이 없어도 다른 컴퓨터에서 실행할 수 있도록 Python 코드를 exe 프로그램으로 패키징하여 직접 사용할 때 주로 사용됩니다.

사용법

1. 설치

pyinstaller는 타사 라이브러리이므로 사용 시 미리 설치해야 합니다.

pip install pyinstaller

2. 스펙 파일 구성

1. 생성된 exe 프로그램 폴더를 구성합니다.

(1) 스펙 구성 내용이 익숙하지 않은 경우 터미널에서 다음 명령을 실행하여 고정된 템플릿을 생성할 수 있습니다

pyinstaller --name myapp main.py  # myapp为生成的spec文件名称,main.py为打包的文件

실행 후 여러 파일을 볼 수 있으며, dist 및 파일을 직접 빌드합니다. myapp.spec 파일을 열면 구성정보를 볼 수 있는 걸 보니.

Python pyinstaller 라이브러리를 설치하고 구성하는 방법

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
    ['main.py','hello.py'],  #注:要打包的模块,按照先后顺序运行
    pathex=['C:/Users/pythonProject'],  #注:要打包的Python源代码的路径列表。
    binaries=[], 
    datas=[],  #注:要打包的非Python资源(例如图像、配置文件等)列表。
    hiddenimports=[''requests],  #注:必需的隐藏导入列表,用于告诉PyInstaller找到其他未明确指定的依赖项。
    hookspath=[],  #注:一个路径列表,其中包含指定要自定义的钩子模块的目录。
    hooksconfig={},  #注:
    runtime_hooks=[],  #注:用于在应用程序运行时运行的Python代码文件列表。
    excludes=[],  #注:不包括在生成的可执行文件中的模块列表
    win_no_prefer_redirects=False,  #注:
    win_private_assemblies=False,
    cipher=block_cipher,  #注:用于加密Python字节码的密码。
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

#注:a.pure: 一个布尔值,指示是否生成纯Python字节码。如果为True,则PyInstaller将不包括任何二进制文件或库。

a.zipped_data: OneFile 모드에서 모든 Python 스크립트와 리소스를 포함하는 데 사용되는 튜플입니다.

exe = EXE(
    pyz,  #注:一个PYZ实例,其中包含要打包的所有Python脚本和资源。
    a.scripts,  #注:应用程序的主Python脚本列表。
    [],
    exclude_binaries=True,
    name='myapp',  #注:生成exe可执行文件的名称
    debug=False,  #注:一个布尔值,指示是否生成调试版本的可执行文件
    bootloader_ignore_signals=False,  #注:一个布尔值,指示是否忽略启动加载器的信号。
    strip=False,  #注:一个布尔值,指示是否对可执行文件进行符号剥离。
    upx=True,  #注:一个布尔值,指示是否使用UPX压缩可执行文件
    console=True,  #注:是否开启dos窗口
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
   icon:'图标.ico'  #注:用户生成exe文件的封面,后缀必须是ico格式,转换地址:https://convertio.co/zh/download/88c5806204642c8a1c10e65b1bef9b5886f6d8/
)
coll = COLLECT(
    exe,  #注:你的Python脚本生成的可执行文件路径(通常是与spec文件同名的文件)
    a.binaries,  #注:二进制对象列表,表示其他相关二进制文件的位置以及将它们复制到输出目录的相对路径。例如,如果您的应用程序需要音频或图像文件,则可以使用此参数将其包含在可执行文件中。
    a.zipfiles,  #注:压缩文件列表,表示应该从zip文件中提取哪些文件并将它们放入输出目录。这对于打包一些必需的库或数据文件非常有用。
    a.datas,  #注:数据文件列表,这些文件不应被压缩,但应该被复制到输出目录中。例如,这可能包括配置文件、模板文件或其他类型的文本文件。
    strip=False,  #注:是否从可执行文件和库中去除调试信息。默认情况下为True,这将减小文件大小,但会使得调试更加困难。
    upx=True,  #注:是否使用UPX来压缩可执行文件和库。默认情况下为False,因为UPX可能会导致某些文件无法正常工作。
    upx_exclude=[],  #注:
    name='myapp',  #注:打包文件夹名称。
)

(3) 일반적으로 패키징할 모듈 + pathex + 생성된 exe 파일 이름 + exe가 존재하는 디렉터리 이름만 구성하면 됩니다. 구성 후 터미널에 직접 명령을 입력합니다. 포장하다.

pyinstaller  myapp.spec

(4) 패키징이 완료되면 프로젝트가 위치한 디렉터리에서 dist 파일을 보면 dist 파일 옆의 디렉터리가 패키징 폴더이고 아래 프로그램이 해당 폴더입니다. 우리는 전체 폴더를 패키지하므로 다른 사람과 공유할 때 올바른 작동을 위해 전체 폴더를 보내야 합니다.

Python pyinstaller 라이브러리를 설치하고 구성하는 방법

(5) 패키징할 모듈을 구성합니다. 모듈 간에 가져오기 연결이 있는 경우 최종 실행되는 모듈(main)을 직접 패키징할 수 있습니다. -main)에 관련된 파티 라이브러리) 모두 함께 패키지됩니다. 두 개의 py 모듈이 서로 관련되지 않은 경우 이때 여러 모듈을 패키징할 수 있습니다.

2. 독립적인 exe 파일을 생성하도록 구성

(1) 여기의 단계는 위와 동일하며, 먼저 템플릿을 생성합니다

pyinstaller -F main.py

(2) 템플릿의 대략적인 스타일은 다음과 같으며, 그 의미는 다음과 같습니다. 필드는 위와 같습니다.

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='hello',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

(3) 구성이 완료되면 터미널에서 패키징 명령을 실행해 보면 dist 디렉터리에 exe 파일이 하나만 있는 것을 확인할 수 있습니다.

pyinstaller  myapp.spec

Python pyinstaller 라이브러리를 설치하고 구성하는 방법

spec 파일을 구성하는 것 외에도 pyinstaller 명령을 통해 직접 패키징할 수도 있습니다. 여기서는 자세한 내용을 다루지 않겠습니다

위 내용은 Python pyinstaller 라이브러리를 설치하고 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제