Python 응용 프로그램을 작성 중이며 클라이언트가 Python 및 모듈을 설치하도록 강요하고 싶지 않습니다.
그렇다면 파이썬 스크립트를 독립 실행 파일로 컴파일하는 방법이 있습니까?
Python 응용 프로그램을 작성 중이며 클라이언트가 Python 및 모듈을 설치하도록 강요하고 싶지 않습니다.
그렇다면 파이썬 스크립트를 독립 실행 파일로 컴파일하는 방법이 있습니까?
답변:
당신은 사용할 수 있습니다 py2exe에를 이미 대답 사용으로 사이 썬 키 변환 할 .py
파일을 .pyc
같은 C 컴파일 된 파일, .dll
윈도우와 .so
일반보다 되돌릴 더 힘들어, 리눅스에서 .pyo
와 .pyc
파일 (이득 성능도하고!)
PyInstaller 를 사용 하여 Python 프로그램을 독립형 실행 파일로 패키지 할 수 있습니다 . Windows, Linux 및 Mac에서 작동합니다.
PyInstaller 빠른 시작
PyPI에서 PyInstaller를 설치하십시오.
pip install pyinstaller
프로그램의 디렉토리로 이동하여 다음을 실행하십시오.
pyinstaller yourprogram.py
이 하위 디렉토리에 번들을 생성합니다
dist
.자세한 연습은 설명서를 참조하십시오 .
Nuitka 를 조사 할 수도 있습니다 . 파이썬 소스 코드를 사용하여 C ++ API 호출로 변환합니다. 그런 다음 실행 가능한 바이너리 (Linux의 ELF)로 컴파일됩니다. 몇 년 전부터 사용되어 왔으며 광범위한 Python 버전을 지원합니다.
사용하면 성능이 향상 될 수 있습니다. 추천합니다.
Python 2.7을 사용하여 Windows에서 독립 실행 형 파일을 만드는 방법에 대한 유용한 정보를 컴파일하고 싶습니다.
py2exe를 사용 했는데 작동하지만 문제가 있습니다.
Windows 64 비트에서 단일 파일을 만드는 데 몇 가지 문제 가 있습니다. py2exe와 함께 bundle_files = 1을 사용할 수 없습니다 .
작동하려면 setup.py 파일을 작성해야합니다. http://www.py2exe.org/index.cgi/Tutorial#Step2 ;
설정 파일에서 패키지를 가져 와서 해결해야 할 종속성에 문제가 있습니다.
PyQt와 함께 작동시킬 수 없었습니다.
이 마지막 이유로 PyInstaller http://www.pyinstaller.org/를 사용해 보았습니다 .
내 의견으로는 다음과 같은 이유로 훨씬 낫습니다.
예를 들어 다음과 같은 줄로 .bat 파일을 만드는 것이 좋습니다 (pyinstaller.exe는 Windows 경로에 있어야 함).
pyinstaller.exe --onefile MyCode.py
다른 옵션 중에서 하나의 파일을 작성할 수 있습니다 ( https://pyinstaller.readthedocs.io/en/stable/usage.html#options ).
https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing 이 레시피를 사용하여 해결 된 PyInstaller 및 멀티 프로세싱 패키지를 사용하는 데 한 가지 문제가있었습니다 .
그래서 적어도 파이썬 2.7의 경우 더 좋고 간단한 옵션은 PyInstaller라고 생각합니다.
--onefile
실행 여전히이와 연결하고자 플래그는, 당신은 Windows에서이 휴대용 만들기 위해 도움이되지 않습니다 api-ms-win-crt-runtime-l1-1-0.dll
관통 설치해야 라이브러리 (또는 / 및 기타) vcredist
패키지로 제공된다. 따라서 종속성이 여전히 존재하며 실행 전에 설치해야합니다.
예, Python 스크립트를 독립형 실행 파일로 컴파일 할 수 있습니다.
PyInstaller 는 Python 프로그램을 Windows , Linux , Mac OS X , FreeBSD , Solaris 및 AIX 에서 독립형 실행 파일로 변환하는 데 사용할 수 있습니다 . 권장되는 변환기 중 하나입니다.
py2exe 는 Python 스크립트를 Windows 플랫폼에서만 실행 파일로 변환합니다.
Cython 은 Python 프로그래밍 언어와 확장 Cython 프로그래밍 언어 모두를위한 정적 컴파일러입니다.
그리고 세 번째 옵션 cx_Freeze
은 크로스 플랫폼입니다.
cx_Freeze
있으며 2017 년 말 이후로 pypi에 대한 릴리스 는 없습니다 .이 프로젝트는 중단 되었습니까?
py2exe를 사용하십시오 .... 아래 설정 파일을 사용하십시오 :
from distutils.core import setup
import py2exe
from distutils.filelist import findall
import matplotlib
setup(
console=['PlotMemInfo.py'],
options={
'py2exe': {
'packages' : ['matplotlib'],
'dll_excludes': ['libgdk-win32-2.0-0.dll',
'libgobject-2.0-0.dll',
'libgdk_pixbuf-2.0-0.dll']
}
},
data_files = matplotlib.get_py2exe_datafiles()
)
나는 pyinstaller , 특히 "windowed"변형을 좋아합니다 :
pyinstaller --onefile --windowed myscript.py
dist / 폴더에 하나의 * .exe 파일이 생성됩니다.
또한
python 2.3-2.7 과 같은 이전 버전과의 호환성을 향상 시키기 위해 pyinstaller 를 권장 합니다.
대한 py2exe에 , 당신은 파이썬 2.6이 있어야
Python 3.2 스크립트의 경우 Cxfreeze 만 선택할 수 있습니다. 소스에서 빌드하지 않으면 작동하지 않습니다.
파이썬 2.x의 경우 라이브러리를 출력하는 CxFreeze와 달리 파이썬 프로그램을 단일 실행 파일로 패키지 할 수 있으므로 pyinstaller를 제안합니다.
py2exe는 원하는 exe 파일을 만들지 만 새 exe를 사용할 컴퓨터에 같은 버전의 MSVCR90.dll이 있어야합니다. 자세한 내용은 http://www.py2exe.org/index.cgi/Tutorial 을 참조 하십시오 .
https://wiki.python.org/moin/DistributionUtilities에 나열된 배포 유틸리티 목록을 찾을 수 있습니다 .
bbfreeze를 사용 하고 있으며 잘 작동하고 있습니다 (python 3을 지원 하기는하지만).
.so
파일 로 컴파일 하거나 .egg 파일을 직접 복사하며 모두 단일 디렉토리 (또는 단일 파일)에 있어야합니다. 설치가 필요하지 않습니다.
pyinstaller를 사용하여 .exe 바로 가기를 사용하는 대신 더 나은 방법을 찾았습니다 --onefile
. 어쨌든 주변에 일부 데이터 파일이있을 수 있으며 사이트 기반 응용 프로그램을 실행하는 경우 프로그램은 html, js, css 파일에도 의존합니다. 이 모든 파일을 어딘가로 옮기는 데 아무런 의미가 없습니다. 대신 작업 경로를 위로 올리면 어떻게 될까요?
, EXE 파일의 바로 가기를 확인 상단으로 이동하고 목표를 설정하고 시작에 경로 지정된대로 DIST에 \ 폴더를가는 상대 경로를 가지고 :
Target: %windir%\system32\cmd.exe /c start dist\web_wrapper\web_wrapper.exe
Start in: "%windir%\system32\cmd.exe /c start dist\web_wrapper\"
"GTFS - 관리자"로 이름을 변경, 그래서 아무것도 바로 가기 이름을 바꿀 수 있습니다
때 두 번 지금 -바로 가기를 클릭하면 마치 파일을 파이썬에서 실행하는 것처럼 보입니다! 이 방법은 다음 방법보다 낫습니다 --onefile
.
아, 빌드 후 빌드 폴더를 삭제해야 크기가 절약됩니다.
PyRun, https://www.egenix.com/products/python/PyRun/ 도 옵션 이라고 들었습니다 .