홈>
파이썬 프로젝트에서 하나의 실행 파일을 만들고 싶습니다. 사용자는 Python을 설치하지 않고도 다운로드하여 실행할 수 있어야합니다. 방금 패키지를 배포하는 경우 pip, wheel 및 PyPI를 사용하여 빌드하고 배포 할 수 있지만 사용자에게는 Python이 있고 패키지 설치 방법을 알고 있어야합니다. Python 프로젝트에서 자체 포함 실행 파일을 빌드하는 데 무엇을 사용할 수 있습니까?
- 답변 # 1
- 답변 # 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를 지원합니다
관련 자료
- abstract class - python - 다른 abc로부터 상속하는 abc를 만드는 방법은 무엇입니까?
- 파이썬 3에서 윤년 생성기를 만드는 방법
- regex - 파이썬에서 다른 txt 파일에서 데이터 프레임을 만드는 방법은 무엇입니까?
- Python Pandas에서 날짜를 계산하는 새 열을 만드는 방법은 무엇입니까?
- loops - 여러 폴더에서 python을 실행하여 pdf를 만드는 방법은 무엇입니까?
- average - Excel Averageifs에 해당하는 것을 사용하여 파이썬 데이터 프레임에 새 열을 어떻게 생성합니까?
- Python의 if 문에서 값 배열 만들기
- dictionary - Python에서 동적 중첩 사전을 만드는 방법
- amazon web services - pip 실행 파일을 찾을 수 없어 aws sam deployment 실패 - 파이썬
- 중복이 적은 프로젝트 구조를 만들려면 어떻게해야합니까?
- Python의 YAML에서 사용자 지정 클래스의 개체 만들기
- unit testing - 프로젝트 디렉토리에서 Python 파일의 실제 경로를 얻는 방법
- sql - 파이썬을 사용하여 psql 데이터베이스에 테이블을 만드는 방법은 무엇입니까?
- scheduled tasks - 파이썬으로 루틴 만들기
- Python에서 대체 사전 만들기
- powerbi - USERNAME () 함수에서 전달 된 단일 값에서 복잡한 필터를 만드는 방법
- python - 정규식 lookbehind 작은 따옴표 또는 큰 따옴표 뒤에 단어 가져 오기
- tkinter - python - 실행 파일이 올바르게 실행되지 않음
- 상속을 사용하여 Python 클래스에서 JSON 만들기
- python 사전 - dict의 모든 키에 대한 목록을 만들고 dict의 모든 값에 대해 다른 목록을 만듭니다
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
다음은 일반적인 것들입니다. 명시 적으로 언급되지 않는 한, 아래에 나열된 모든 프로젝트는 마지막 편집 시점 (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 만 지원하려면 패키지를 실행 파일로 바꾸는 대신 패키지 용 배포 패키지를 만드는 것이 좋습니다. 이 작업을 수행하는 데 도움이되는 도구를 나열하는 것은이 게시물의 범위를 벗어난 것이지만이 경로를 탐색하기로 결정한 경우 읽을 거리가 있습니다.