Python 용 .py를 .exe로 어떻게 변환 할 수 있습니까?


126

상당히 간단한 Python 프로그램을 실행 파일로 변환하려고하는데 제가 찾고있는 것을 찾을 수 없었기 때문에 몇 가지 질문이 있습니다 (Python 3.6을 실행 중입니다).

지금까지 찾은 방법은 다음과 같습니다.

  1. 이전 버전의 Python을 다운로드하고 사용 pyinstaller/py2exe
  2. Python 3.6에서 가상 환경을 설정하여 1을 수행 할 수 있습니다.
  3. Python to C ++ 변환기를 다운로드하고 사용합니다.

다음은 내가 시도한 것 / 내가 겪은 문제입니다.

  • pyinstaller필요한 다운로드 전에 설치 했기 때문에 (pypi-something) 작동하지 않았습니다. 필수 파일을 다운로드 한 pyinstaller후에도 여전히 인식되지 않습니다.
  • Python 2.7에서 virtualenv를 설정하는 경우 실제로 Python 2.7을 설치해야합니까?
  • 비슷하게, 내가 보는 유일한 python to C ++ 변환기는 Python 3.5까지만 작동합니다. 시도 할 경우이 버전을 다운로드하여 사용해야합니까?

4
왜 이것이 반대 투표인지 확실하지 않지만 (아마도 도구 권장 사항이 SO의 주제에서 벗어 났기 때문에)이 질문은 향후 다른 사람들에게 유용 할 것입니다. 유사 이전의 질문은, 예를 들어 논외로 표시되지 않은 stackoverflow.com/questions/2136837/...
— Chris_Rands

답변:


127

Python 3.6에서 .py를 .exe로 변환하는 단계

  1. Python 3.6을 설치합니다 .
  2. cx_Freeze를 설치합니다 (명령 프롬프트를 열고 pip install cx_Freeze.
  3. idna를 설치합니다 (명령 프롬프트를 열고 pip install idna.
  4. .py라는 프로그램을 작성하십시오 myfirstprog.py.
  5. setup.py스크립트의 현재 디렉터리에 이름이 지정된 새 Python 파일을 만듭니다 .
  6. 에서 setup.py파일, 다음과 저장 코드를 복사합니다.
  7. Shift 키를 누른 상태에서 동일한 디렉토리를 마우스 오른쪽 버튼으로 클릭하면 명령 프롬프트 창을 열 수 있습니다.
  8. 프롬프트에서 다음을 입력하십시오. python setup.py build
  9. 스크립트에 오류가 없으면 응용 프로그램을 만드는 데 문제가 없습니다.
  10. 새로 생성 된 폴더를 확인합니다 build. 다른 폴더가 있습니다. 해당 폴더 내에서 응용 프로그램을 찾을 수 있습니다. 그것을 실행하십시오. 자신을 행복하게 만드십시오.

내 블로그 에서 원본 스크립트를 참조하십시오 .

setup.py :

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

편집하다:

  • 대신 4 단계 에서 만든 확장 파일 이름을 myfirstprog.py입력해야 .py합니다 .
  • 각 포함해야 import당신의 에드 패키지 .py에 packages목록 (예 : packages = ["idna", "os","sys"])
  • any name, any number, any description에 setup.py파일이 적절하게 변경해야합니다 (예 : 동일하게 유지 안 name = "<first_ever>", version = "0.11", description = '')
  • import시작하기 전에 에디션 패키지가 설치되어 있어야합니다 8 단계 .

10
'독립형'실행 파일로 만드는 방법이 있습니까? 귀하의 기사에서 조언 한대로 진행하면 exe.win.32-3.6 폴더로 끝납니다. 지원하는 파일과 디렉토리 ( 'collections /', 'email'등)로 가득 차 있습니다. 간단한 인쇄 ( 'hello')에는 끔찍합니다. 다른 파일이 필요없이 다른 컴퓨터에서있는 그대로 실행될 단일 실행 파일을 만들고 싶습니다. 이를위한 빌드 옵션이 있습니까?
— FanaticD


2
@FanaticD Python은 최선의 선택이 아닙니다. Cython (일하는 악몽) 또는 Nuitka가 최선의 방법입니다. 그러나 이러한 작업을 수행하는 것은 그 자체로 성취입니다.
— Tetora

이것이 Python 3.5.3에서 작동합니까? (Debian 9 Stretch의 마지막 안정 버전).
— Gerard

어떻게 가져 오나요 from sklearn.externals import joblib? 편집, 2 단계에서 언급했듯이
— Jack

77

Python 3.6은 PyInstaller에서 지원됩니다.

Python 폴더에서 cmd 창을 엽니 다 (명령 창을 열고 cdShift 키를 누른 상태에서 Windows 탐색기에서 마우스 오른쪽 단추로 클릭하고 '여기에서 명령 창 열기'를 선택합니다). 그런 다음 입력하십시오

pip install pyinstaller

그리고 그게 다야.

사용하는 가장 간단한 방법은 명령 프롬프트에 입력하는 것입니다.

pyinstaller file_name.py

사용 방법에 대한 자세한 내용은 이 질문을 참조하십시오 .


4
방금 파이썬 3.7.0으로 테스트했습니다. 많은 경고가 있지만 성공적으로 컴파일되어 Windows 10에서 실행 중
— Ole_S

2
나는 파이썬 3.5.0없이 경고 나 오류로 프로그램을 컴파일, 그것은 예상대로 실행됩니다
— Menotdan

아무도 Pyinstaller에서 중요한 것이 무엇인지 알고 있습니까? Windows 10의 exe 빌드가 Windows 8에서 작동합니까? 또는 Windows 10 32 비트 빌드가 Windows 10 64 비트 시스템에서 작동합니까?
— Derik81

27

GitHub 에는 auto-py-to-exe라는 오픈 소스 프로젝트 가 있습니다 . 실제로 내부적으로도 PyInstaller를 사용하지만 PyInstaller를 제어하는 ​​간단한 GUI가 있기 때문에 편안한 대안이 될 수 있습니다. 다른 솔루션과 달리 독립 실행 형 파일을 출력 할 수도 있습니다. 또한 설정 방법을 보여주는 비디오 도 제공 합니다.

GUI :

Exe로 자동 파이

산출:

산출


2
MVC ++가 필요하다고 언급 했어야합니다. 오류 : Microsoft Visual C ++ 14.0이 필요합니다.
— SKR

3
pyinstaller에 빌드 되었기 때문에 여기에서 값을 찾지 못했습니다. pyinstaller에서 오류가 발생하면 여기에서도 오류가 발생합니다!
— CV_passionate

9

가장 좋은 것이 무엇인지 말할 수는 없지만 과거에 성공한 도구는 cx_Freeze였습니다 . 그들은 최근 ('17 년 1 월 7 일) 버전 5.0.1로 업데이트했으며 Python 3.6을 지원합니다.

다음은 pypi https://pypi.python.org/pypi/cx_Freeze입니다.

문서는 필요에 따라 여러 가지 방법이 있음을 보여줍니다. http://cx-freeze.readthedocs.io/en/latest/overview.html

아직 시도하지 않았으므로 간단한 방법에 대해 논의한 게시물을 가리켜 보겠습니다. 하지만 일부는 변경되거나 변경되지 않았을 수 있습니다.

cx_freeze를 어떻게 사용합니까?


11
언급 할 가치가있는 것은 cxFreeze는 단일 파일 실행 파일을 수행하지 않는다는 것입니다.
— Eddie Hart

7

내 패키지 PySimpleGUI와 함께 Nuitka 및 PyInstaller를 사용하고 있습니다.

Nuitka tkinter가 Nuikta로 컴파일하는 데 문제가있었습니다. 프로젝트 기여자 중 한 명이 문제를 해결하는 스크립트를 개발했습니다.

tkinter를 사용하지 않는 경우 "그냥 작동"할 수 있습니다. tkinter를 사용하는 경우 그렇게 말하고 스크립트와 지침을 게시하도록 노력하겠습니다.

PyInstaller 3.6을 실행 중이고 PyInstaller가 훌륭하게 작동합니다! 내 exe 파일을 만드는 데 사용하는 명령은 다음과 같습니다.

pyinstaller -wF myfile.py

-wF는 단일 EXE 파일을 생성합니다. 내 모든 프로그램에 GUI가 있고 명령 창을 표시하고 싶지 않기 때문에 -w 옵션은 명령 창을 숨 깁니다.

이것은 Python으로 작성된 Winforms 프로그램을 실행하는 것과 비슷 합니다.

[2019 년 7 월 20 일 업데이트]

PyInstaller를 사용하는 PySimpleGUI GUI 기반 솔루션이 있습니다. PySimpleGUI를 사용합니다. pysimplegui-exemaker 라고 하며 pip 설치가 가능합니다.

pip install PySimpleGUI-exemaker

설치 후 실행하려면 :

python -m pysimplegui-exemaker.pysimplegui-exemaker


5

이제 PyInstaller를 사용하여 변환 할 수 있습니다. 저는 Python 3에서도 작동합니다.

단계 :

  1. PC 시작
  2. 명령 프롬프트 열기
  3. 명령 입력 pip install pyinstaller
  4. 설치되면 'cd'명령을 사용하여 작업 디렉토리로 이동하십시오.
  5. 실행 명령 pyinstall <filename>

사람들이 이것을 반대하는 이유는 무엇입니까? 나는 도움을 위해이 답변을 게시하고 있습니다.
— Tejas Joshi

3
OP가 특별히 사용하고있는 Python 3.6에서는 작동하지 않기 때문입니다.
— uri

Pyinstaller가 이제 작동합니다. 그렇지 않은 경우 댓글로 알려주세요
— Tejas Joshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.