PyOxidizer-Python 프로젝트를 실행 파일로 패키징하기위한 유틸리티

파이산화제

며칠 전 개발자는 PyOxidizer 유틸리티의 첫 번째 버전을 소개했습니다., 다음과 같이 제공됩니다. Python 프로젝트를 별도의 실행 파일로 패키징하는 데 사용할 수있는 유틸리티, Python 인터프리터 및 필요한 모든 라이브러리와 리소스를 포함합니다.

이러한 파일은 Python 툴킷이 설치되지 않은 환경에서 또는 필요한 Python 버전의 가용성에 관계없이 실행될 수 있습니다.

PyOxidizer는 시스템 라이브러리와 연관되지 않은 정적으로 관련된 실행 파일도 생성 할 수 있습니다. 프로젝트 코드는 Rust 언어로 작성되었으며 MPL (Mozilla Public License) 2.0에 따라 배포됩니다.

PyOxidizer에 대해?

프로젝트 Rust 언어와 동일한 이름의 모듈을 기반으로하며,이를 통해 Rust 프로그램에 Python 인터프리터를 포함 할 수 있습니다. Python 스크립트를 실행합니다.

파이산화제 이제는 Rust 용 플러그인을 넘어서 독립형 Python 패키지를 빌드하고 배포하기 위해 더 많은 사용자가 사용할 수있는 도구로 자리 매김했습니다.

PyOxidizer는 Python 애플리케이션을 배포하는 방법의 문제를 해결하는 것을 목표로하는 유틸리티입니다.

실행 파일 형태로 애플리케이션을 배포 할 필요가없는 사람들을 위해 PyOxidizer는 Python 인터프리터와 필요한 확장 세트를 포함하기 위해 모든 애플리케이션과 연결할 적절한 라이브러리를 생성 할 수있는 기회를 제공합니다.

Russel Keith-Magee가 Python의 수명에 대한 실존 적 위협으로 코드 배포를 식별했기 때문에 Python 애플리케이션 배포는 일반적으로 미해결 문제로 간주됩니다. 그의 말에 따르면 Python은 내가 다른 사람에게 내 코드를 제공하는 방법에 대한 일관된 기록을 가지고 있지 않습니다. 특히 다른 사람이 개발자가 아니고 내 애플리케이션을 사용하려는 경우 더욱 그렇습니다.

최종 사용자의 경우 단일 실행 파일로 프로젝트 제공 예를 들어 비디오 편집기와 같은 복잡한 Python 프로젝트에서 중요한 종속성을 선택하는 작업을 제거하고 설치를 크게 단순화합니다.

반면에 애플리케이션 개발자의 경우 PyOxidizer를 사용하면 애플리케이션 제공을 구성하는 시간을 절약 할 수 있습니다. 다른 도구를 사용하여 다른 운영 체제 용 패키지를 만들 필요가 없습니다.

PyOxidizer는 어떻게 작동합니까?

제안 된 빌드 사용 또한 성능에 긍정적 인 영향을 미칩니다. PyOxidizer에서 생성 된 파일은 가져 오기를 제거하고 기본 모듈을 정의하여 Python 시스템을 사용하는 것보다 빠르게 실행됩니다.

PyOxidizer에서 메모리에서 모듈을 가져옵니다. (모든 내장 모듈은 즉시 메모리에로드 된 다음 디스크 액세스없이 사용됩니다). 테스트에서 PyOxidizer를 사용한 애플리케이션 시작 시간은 대략 절반으로 단축되었습니다.

유사한 기존 프로젝트에서 다음을 관찰 할 수 있습니다. PyInstaller (임시 디렉토리에 파일 압축을 풀고 여기에서 모듈을 가져옵니다).

  • Py2exe (Windows 플랫폼에 연결되고 여러 파일 배포 필요), py2app (macOS에 연결)
  • Cx-freeze (별도의 종속성 패키징 필요), Shiv 및 PEX (zip 패키지를 형성하고 시스템에 Python이 필요함)
  • Nuitka (내장 된 인터프리터가 아니라 코드를 컴파일 함), pynsist (Windows에 연결됨), PyRun (작동 원리에 대한 설명이없는 독점 개발).

현재 개발 단계에서 PyOxidizer는 이미 Windows, macOS 및 Linux 용 실행 파일을 생성하는 주요 기능을 구현했습니다.

광범위한 기능 중 표준 컴파일 환경의 부재, MSI, DMG 및 deb / rpm 형식으로 패키지를 생성 할 수 없음, C 언어에 대한 복잡한 확장이 포함 된 프로젝트의 패키징 문제가 있음을 지적했습니다.

제공 ( "pyoxidizer 추가", "pyoxidizer 분석"및 "pyoxidizer 업그레이드")을 지원하는 지침이없고 Terminfo 및 Readline에 대한 제한된 지원, Python 3.7 이외의 버전에 대한 지원 부족, 리소스 압축에 대한 지원 부족, 크로스 컴파일이 불가능합니다.

출처 : https://pyoxidizer.readthedocs.io


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.