py2exe

py2exe


 


파이썬으로 만든 프로그램을 exe 실행파일로 생성해주는 패키지.


setup.py 에 옵션을 적고 실행하면 dist 폴더에 관련 파일(dll, exe,library )들이 생성됨.


 


폴더 째로 배포하면 된다고 하는데.. 걸리는게 몇 가지 있음


 



  • dll 파일이 없어서 warning이 뜨는데.. 이 문제로 tts기능이 안되는거 같음..

  • gui 프로그램에 들어가는 이미지파일과 data파일(내경우는 csv파일), 그리고 *.dll, library.zip파일을 하나로 묶어서 exe파일로 배포하고 싶은데.. 이게 쉽지 않음..- 요곤 귀찮아서 패스...


 


홈페이지


http://www.py2exe.org/


한글페이지-이강성님 페이지인듯??


http://www.python.or.kr/pykug/py2exe


관련 정보 블로그


http://bslime.tistory.com/187#recentTrackback


http://soooprmx.com/wp/archives/559


 


아래 내용은 py2exe tutorial 내용임


 



  1. 일단 목적 프로그램이 잘 실행되는지 확인한다.


  2. setup.py 파일 생성




    1. setup.py





    2. 1 from distutils.core import setup
      2 import py2exe
      3
      4 setup(console=['hello.py']#콘솔에서 실행할경우-GUI의 경우 cmd가 먼저 뜨고 프로그램이 뜬다.


      #windows=['hello.py] cmd가 실행안되고 gui 프로그램이 실행된다고 함


      )




  3. python setup.py py2exe 실행 (물론  hello.py 파일이 있는 곳에서...



    1.  


      C:\Tutorial>python setup.py py2exe
      running py2exe
      *** searching for required modules ***
      *** parsing results ***
      creating python loader for extension 'zlib'
      creating python loader for extension 'unicodedata'
      creating python loader for extension 'bz2'
      *** finding dlls needed ***
      *** create binaries ***
      *** byte compile python files ***
      byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\bz2.py to bz2.pyc
      byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\unicodedata.py to unicodedata.pyc
      byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\zlib.py to zlib.pyc
      skipping byte-compilation of c:\Python24\lib\StringIO.py to StringIO.pyc

      [skipping many lines for brevity]

      skipping byte-compilation of c:\Python24\lib\warnings.py to warnings.pyc
      *** copy extensions ***
      *** copy dlls ***
      copying c:\Python24\lib\site-packages\py2exe\run.exe -> C:\Tutorial\dist\hello.exe

      *** binary dependencies ***
      Your executable(s) also depend on these dlls which are not included,
      you may or may not need to distribute them.

      Make sure you have the license if you distribute any of them, and
      make sure you don't distribute files belonging to the operating system.

      ADVAPI32.dll - C:\WINDOWS\system32\ADVAPI32.dll
      USER32.dll - C:\WINDOWS\system32\USER32.dll
      SHELL32.dll - C:\WINDOWS\system32\SHELL32.dll
      KERNEL32.dll - C:\WINDOWS\system32\KERNEL32.dll

      C:\Tutorial>



  4. 생성된 dist 폴더에 가서 exe 파일을 실행해본다.

  5. -------------------------

  6. 이렇게 쉽게 된다면 좋겠으나.. 걸리는게 많음.. 여러 모듈을 import 했더니.. 사용해야하는 dll파일도 많나보다...그래서 어떤 dll파일을 찾을 수 없다는 에러가 나며 중단됬었음. 요곤 해당 dll파일을 찾아서 복사해주면 됨. 어따 해줘야 할지 몰라서 걍 path되는 곳 아무곳에나 던져넣었음..- 요곤 문제가 있는듯.. dll파일중에는 바이러스가 필요로 하는 dll파일도 있어서 (바이러스도 프로그램의 하나이니...) 뭔가 껄쩍지근해서.. 배포 완료후 삭제해 주는 것이 좋을듯? 아니면 말고..

  7. 그리고 위 메세지 마지막 부분..dll파일을 포함할 수 없다는 내용인듯.. 저작권 문제 인듯.. dist파일에 포함해서 배포하면 된다고는 하는데.. 이는 해당 dll파일의 저작권정책에 합당한 경우에만 가능한듯..


  8. pyttsx모듈(tts기능)이 win32com모듀을 이용하는듯...해서 이기능이 들어가 있어서 그냥 exe파일을 만들면 오류를 내뿜음..이럴땐

    win32com 을 이용한 파이썬 프로그램 py2exe로 실행파일 만들기
       python 마을의 nezy님 감사합니다.




    1. python setup.py py2exe --packages win32com


       





  9. 배포하여 다른 컴퓨터에서 실행해보지는 않았으나.. 일단 내컴퓨터에서 exe파일이 실행됨..일단 성공 만족..

                asdf



  10.  

  11. ㄴㅁㅇㄹ


 


이 글은 스프링노트에서 작성되었습니다.

댓글

이 블로그의 인기 게시물

fdupes-중복파일제거

민지아

나는 조지아의 미친 고양이 -Angus, Thongs and Perfect Snogging(2008)