>

파이썬 프로젝트에서 하나의 실행 파일을 만들고 싶습니다. 사용자는 Python을 설치하지 않고도 다운로드하여 실행할 수 있어야합니다. 방금 패키지를 배포하는 경우 pip, wheel 및 PyPI를 사용하여 빌드하고 배포 할 수 있지만 사용자에게는 Python이 있고 패키지 설치 방법을 알고 있어야합니다. Python 프로젝트에서 자체 포함 실행 파일을 빌드하는 데 무엇을 사용할 수 있습니까?

  • 답변 # 1

    다음은 일반적인 것들입니다. 명시 적으로 언급되지 않는 한, 아래에 나열된 모든 프로젝트는 마지막 편집 시점 (2018 년 8 월)을 기준으로 적극적으로 유지 관리됩니다.

    또한 얼마나 자주 업데이트되었는지 확인하기 위해 해당 웹 사이트, 리포지토리 및 PyPi 목록에 대한 링크를 포함 시켰습니다.

    또한 달리 명시되지 않는 한 아래에 나열된 모든 프로그램은 실행중인 운영 체제에 맞는 exe를 생성합니다. 예를 들어 Windows에서 Pyinstaller를 실행하면 Windows exe가 생성되지만 Linux에서 Pyinstaller를 실행하면 Linux exe가 생성됩니다. . 여러 운영 체제에 대한 exe를 생성하려면 가상 머신을 사용하거나 와인과 같은 것을 사용해야합니다.

    <시간>

    다음 프로그램은 모두 비슷하게 작동합니다. 파이썬과 프로그램을 함께 묶어 효과적으로 결합하여 실행 파일을 만듭니다.

    PyInstaller :

    링크: 웹 사이트 || 레포 || 파이피

    지원: Windows, Mac 및 Linux의 Python 2.7 및 Python 3.4-3.7.

    cx_Freeze :

    링크 :웹 사이트 || 레포 || 파이피

    지원 :Windows, Mac 및 Linux에서 Python 2.7 및 3.5-3.7 (?)

    pyapp :

    링크 :웹 사이트 || 레포 || 파이피

    지원 :Mac에서만 Python 2.7 및 3.3 (?)-3.7 (?)

    참고 :마지막 편집 시점에서 pyapp가 지원하는 정확한 Python 버전 범위를 결정적으로 결정할 수 없었습니다. 최신 릴리스에는 Python 3.7 지원에 대한 언급이 있습니다.

    참고 :이 게시물의 이전 버전에는 py2exe (repo) 및 bbfreeze (repo)에 대한 기록이 포함되었습니다. 두 프로젝트 모두이 목록에서 제거되었습니다. 몇 년 동안 거의 활동이 없었으며 완전히 유지되지 않은 것으로 보입니다. 이전 기사의 편집 기록을 참조하십시오.

    <시간>

    물론, 그것이 유일한 방법은 아닙니다 :

    pynsist :

    링크 :웹 사이트 || 레포 || 파이피

    지원 :모든 Python 버전? 참고-Windows 설치 관리자만 생성합니다

    기타 참고 사항 : Pynsist는 임의의 Python 버전을 응용 프로그램과 함께 번들링하는 것을 지원하는 것으로 보입니다. 그러나 도구 자체를 실행하려면 Python 3.5 이상이 필요합니다.

    Pynsist는 사용자 코드를 번들로 묶지 않고 사용자 컴퓨터에 직접 Python을 설치하고 Python 스크립트에 연결되는 바로 가기를 생성하는 프로그램 용 Windows 설치 프로그램을 만듭니다. 이 프로그램은 Windows 설치 프로그램 만 생성하지만 Mac 및 Linux 컴퓨터에서 Pynsist를 계속 실행할 수 있습니다.

    Nuitka :

    링크 :웹 사이트 || 레포 (Github 미러) || 파이피

    지원 :Windows, Mac 및 Linux에서 Python 2.6-2.7 및 Python 3.3-3.7.

    기타 참고 사항 :Nuitka는 문자 그대로 Python 코드를 컴파일하고 코드를 빠르게 실행하기 위해 Python을 포함하는 다른 프로젝트와 달리 exe를 생성합니다. 부작용으로 배포 할 수있는 편리한 exe를 얻을 수 있습니다. 시스템에서 사용 가능한 C ++ 컴파일러가 있어야합니다.

    사이 톤 :

    링크 :웹 사이트 || 레포 || 파이피

    지원 :Windows, Mac 및 Linux에서 Python 2.6-2.7 및 Python 3.2-3.7 (?)

    기타 참고 사항 :Cython은 Python 컴파일러라는 점에서 Nuitka와 유사합니다. 그러나 코드를 직접 컴파일하는 대신 C로 컴파일합니다. 그런 다음 C 코드를 가져 와서 코드를 exe로 바꿀 수 있습니다. 시스템에서 C 컴파일러를 사용할 수 있어야합니다.

    <시간>

    개인적으로 선호하는 것은 PyInstaller를 사용하는 것입니다. PyInstaller는 시작하고 실행하는 것이 가장 쉬웠으며, numpy 또는 pygame과 같은 인기있는 다양한 라이브러리와 잘 작동하도록 설계되었으며 다양한 OS 및 Python 버전과 호환됩니다.

    그러나 cx_Freeze를 사용하여 다양한 어려움을 성공적으로 만들었습니다. 그래서 그 프로그램도 고려해야합니다.

    Pynist, Nuitka 또는 Cython을 광범위하게 시험해 볼 기회는 없었지만, 꽤 흥미롭고 혁신적인 솔루션 인 것 같습니다. 첫 번째 프로그램 그룹을 사용하는 데 문제가 있으면이 세 가지 중 하나를 시도해 보는 것이 좋습니다. Pyinstaller/cx_freeze 스타일 프로그램과 근본적으로 다르게 작동하기 때문에 첫 번째 그룹이 실패하는 이상한 경우에 성공할 수 있습니다.

    특히 pynist는 코드 배포의 모든 문제를 완전히 극복하는 좋은 방법이라고 생각합니다. Mac과 Linux는 이미 Python을 기본적으로 지원하며 Windows에 Python을 설치하는 것이 가장 깨끗한 솔루션 일 수 있습니다. 단점은 이제 여러 버전의 Python + 설치 라이브러리를 대상으로하는 것에 대해 걱정해야한다는 것입니다.

    Nuitka와 Cython (제한된 경험)은 상당히 잘 작동하는 것 같습니다. 다시 말하지만, 나는 그것들을 광범위하게 테스트하지 않았으므로, 나의 주요 관찰은 그들이 "freeze"스타일 프로그램보다 exe를 생성하는 데 훨씬 오래 걸리는 것입니다.

    마지막으로, Linux 만 지원하려면 패키지를 실행 파일로 바꾸는 대신 패키지 용 배포 패키지를 만드는 것이 좋습니다. 이 작업을 수행하는 데 도움이되는 도구를 나열하는 것은이 게시물의 범위를 벗어난 것이지만이 경로를 탐색하기로 결정한 경우 읽을 거리가 있습니다.

  • 답변 # 2

    pyinstaller는 아직 활발히 개발 중입니다. GitHub의 최신 변경 사항을 볼 수 있습니다.

    3 가지 주요 플랫폼을 모두 지원합니다 :

    Windows (32 비트 및 64 비트)

    리눅스 (32 비트 및 64 비트)

    Mac OS X (32 비트 및 64 비트)

    그리고 파이썬 버전 2.6과 2.7을 지원합니다. Python 3은 지원하지 않지만 실험적인 Python 3 분기가 있습니다.

    업데이트

    버전 3.2.1부터는 Python 2.7, 3.3-3.5를 지원합니다

관련 자료

  • 이전 eclipse - 프로그래밍 방식으로 Android 전화 홈 버튼이 깜박이도록 설정
  • 다음 html - 부트 스트랩 4 - 버튼 레이블이있는 가운데 텍스트