UFO ET IT

어떻게 파이썬 프로그램을 배포할 수 있습니까?

ufoet 2023. 8. 21. 23:09
반응형

어떻게 파이썬 프로그램을 배포할 수 있습니까?

내 애플리케이션은 다음과 같습니다.

main.py창/__init_.pymainwindow.py...
모델/__init_.pyorders.py...
리소스/image1.pnglogo.jpg...

이 프로그램은 main.py 에서 시작됩니다.그것으로 '최종' 애플리케이션을 만드는 좋은 방법이 있습니까?저는 py2exe/py2app 같은 것을 생각하고 있지만, 하나의 실행 파일이 있는 애플리케이션에 파이썬 인터프리터/모듈을 복사하지 않고 있습니다.

배포 자료를 살펴보았지만, 이것은 프로그램을 Python 디렉터리에 설치하는 것처럼 보이는데, 이것은 비-리눅스 플랫폼에서는 일반적이지 않습니다.

폴더를 합니다.main.pyw 가지 점은 다음과 같습니다.

  • 아이콘은 기본 파이썬 아이콘입니다.
  • 별칭을 수동으로 만들어야 합니다.
  • 내 소스 디렉터리에는 소스 제어 폴더와 같은 많은 추가 파일이 있습니다.
  • 이름을 변경해야 합니다.main.pymain.pywmanually
  • 대상 시스템에 ".표* 파일만 있으면 좋을 것 같습니다.딱히 이유가 있는 건 아니고, 불필요한 파일들이 있는 게 싫어서 그래요.

어떻게 하면 훌륭한 자동 배포를 만들 수 있을까요?

  • 창문때문에?(현재 지원해야 하는 플랫폼은 이뿐입니다.)
  • 맥용?
  • 리눅스용?

모든 주요 플랫폼을 완벽하게 지원하는 Pyinstaller를 적극 추천합니다.py2exe 및 py2app과 마찬가지로 Windows에서는 표준 실행 파일을 생성하고 OS X에서는 앱 번들을 생성하지만, 일반적인 종속성을 자동으로 해결하고 추가 구성 변경 없이 이러한 종속성을 포함하는 훌륭한 작업을 수행할 수 있다는 이점이 있습니다.

또한 Windows에 Python 2.6을 배포하는 경우 이 패치를 Pyinstaller 트렁크에 적용해야 합니다.

설치 관리자가 필요하지 않다고 표시했지만 Inno Setup은 Windows 플랫폼에 대해 사용하기 쉽고 빠르게 설정할 수 있는 옵션입니다.

Python 응용 프로그램을 배포하는 일반적인 방법은 distutils입니다.이것은 라이브러리 타입 파이썬 모듈과 파이썬 응용 프로그램을 배포하기 위해 만들어졌지만, 윈도우에서 어떻게 작동하는지는 잘 모르겠습니다.어떤 경우에도 Distutils를 사용하는 경우 Windows에서 Python을 별도로 설치해야 합니다.

Linux용으로는 disutils, Windows용으로는 Py2exe 또는 이와 유사한 것과 함께 배포하는 것이 좋습니다.OS X에 대해서는 잘 모르겠습니다.최종 사용자 애플리케이션이라면 디스크 이미지 유형을 원할 것입니다. 어떻게 해야 할지 모르겠습니다.그러나 이 게시물의 사용자 경험에 대한 자세한 내용은 이 게시물을 참조하십시오.프로그래머를 위해 만들어진 애플리케이션의 경우 OS X에도 distutils 유형 설치가 가능할 것입니다.

PEX(이 질문이 받은 관심은 더 많이 고려하고 질문 자체는 더 적게 고려)도 언급할 가치가 있다고 생각합니다.자체 설명에 따르면:

PEX 파일은 독립 실행형 Python 가상 환경입니다.좀 더 구체적으로 말하면, 그것들은 조심스럽게 만들어진 zip 파일입니다.#!/usr/bin/env python 특별한 그고특한별리한▁and.__main__.pyPEX 런타임과 상호 작용할 수 있습니다.zip 응용 프로그램에 대한 자세한 내용은 PEP 441을 참조하십시오.

파이썬 포장 개요를 읽었을 때 우연히 발견했습니다.그들은 이 멋진 사진을 그곳에 올렸습니다.

요약:대상 시스템에 설치된 파이썬에 의존할 여유가 있는 경우 PEX를 사용하여 PyInstaller에서 생성한 실행 파일보다 파일 크기가 작을 수 있는 자체 포함 "실행 파일"을 생성합니다.

Fredrik Lundh는 Python 인터프리터를 포함하지 않고 바이트 코드를 포함하는 단일 파일을 만들 수 있습니다.올바른 인수를 사용하면 다른 파일, 모듈 등을 결과 파일에 포함할 수 있습니다.한 프로젝트에서 성공적으로 사용했습니다.결과로 나온 프로그램은 OS X, Linux 및 Windows에서 문제없이 실행되었습니다!

PS: 각 컴퓨터에는 squeeze.py 에서 생성한 바이트 코드와 호환되는 Python 인터프리터가 있어야 합니다.필요한 경우 다른 버전의 Python에 대해 다른 바이트 코드 버전을 생성할 수 있습니다(스퀴즈만 실행).py).

IronPython에는 윈도우용 컴파일러가 내장되어 있다고 생각합니다.

는 Cx_Freeze를 사용해 보았는데, 지금까지 사용한 .py to .exe(및 몇 개의 .dlls) 컴파일러 중에서 단연 최고라고 생각합니다.

윈도우즈에서 배포하는 경우 설치 관리자를 사용하여 필요한 모든 관련 파일/인터프리터를 설치합니다.setup.exe를 배포합니다.그것이 창문을 여는 가장 좋은 방법입니다.그렇지 않으면 사용자가 불만을 제기할 것입니다.

파이썬 데스크톱 애플리케이션을 배포하는 가장 편리한* 크로스 플랫폼 방법은 크로스 플랫폼 콘다 패키지 관리자에 의존하는 것입니다.이를 사용하는 도구는 다음과 같습니다.

  • Miniconda-Install - Miniconda를 자동으로 다운로드하고 앱을 위한 격리된 콘다 환경을 만드는 파워셸/배시 스크립트.pip를 지원하지만 유지 관리되지 않는 것 같고 https 다운로드 문제가 있습니다.
  • 연속체에 의한 아나콘다 프로젝트 및 (콘다) 컨스트럭터.둘 다 콘다를 사용합니다.(conda) 생성자는 Windows에서 자체 포함 설치 프로그램과 NSIS 설치 프로그램을 만들 수 있는 것처럼 보이지만 pip는 지원하지 않습니다.아나콘다/미니콘다 설치자처럼 행동하는 것 같습니다.
  • PyAppShare - 최종 사용자가 먼저 Miniconda/Anaconda를 설치합니다(런타임 환경처럼).그런 다음 단일 설치 배치/배시 스크립트가 yaml 규격에서 분리된 콘다 환경을 생성합니다.또한 응용 프로그램은 환경에 설치되고 실행 가능한 진입점이 생성되는 콘다/파이프 패키지 자체입니다.크로스 플랫폼 데스크톱 및 프로그램 바로 가기가 자동으로 만들어집니다.환경을 활성화하고 응용 프로그램을 시작합니다.파이프를 지원합니다.

개발자에게 가장 편리한 것.최종 사용자에게 충분히 편리합니다.

Windows의 경우 py2exe가 매우 사용하기 쉽다는 것을 알게 되었습니다.

pip install distutils
pip install py2exe

설정된 코드 몇 줄만 있으면 됩니다.py:

from distutils.core import setup
import py2exe

setup(console=['hello.py'])

Py2exe는 실행 파일을 만들고 모든 종속성을 포함합니다.exe를 빌드하기 전에 C++ 런타임을 수동으로 추가해야 할 수도 있습니다.

from glob import glob
data_files = [("Microsoft.VC90.CRT", glob(r'C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*'))]
setup(
    data_files=data_files,
    ...
)

https://py2exe.org 에는 약 3페이지 길이의 멋지고 간단한 튜토리얼이 있습니다.

언급URL : https://stackoverflow.com/questions/1558385/how-can-i-distribute-python-programs

반응형