[컴][파이썬] wxpython 을 py2exe 로 만들 때 발생하는 error 들

wxpython 을 사용한 app을 py2exe 를 이용해서 실행파일을 만들려고 하는데 몇 가지 문제점이 생겼다.


setup.py 파일

기본적으로 GUI 프로그램이다. 그래서 py2exe 의 setup.py 도 조금 다르다. 기본적인 template 은 아래 경로에서 확인하자.
http://www.blog.pythonlibrary.org/2010/07/31/a-py2exe-tutorial-build-a-binary-series/

from distutils.core import setup
import py2exe

setup(
    windows=[{"script": "getMangaW.py"}],
    options={
        "py2exe": 
        {
            'packages':['wx.lib.pubsub'],
            "includes": ["lxml.etree", "lxml._elementpath"],
            "excludes":["mswsock.dll", "powrprof.dll", "uxTheme.dll", "MSVCP90.dll"],
            "bundle_files":3, # the less, the more zip
            "optimize":2
        }
    },
    zipfile = "lib/library.zip"
)

핵심은 windows 부분이다. 이 부분이 command line 프로그램일 때는 console 이 된다.



MSVCP90.dll error

error: MSVCP90.dll: No such file or directory

그리고 py2exe 를 실행하면, MSVCP90.dll 파일이 없다고 error 가 뜬다. 아래 경로에서 해결책을 찾을 수 있다.
http://stackoverflow.com/questions/323424/py2exe-fails-to-generate-an-executable

결국 MSVCP90.dll 을 download 받아서 python_folder/DLLs 에 넣어 놓아야 한다. 위에 excludes 에 넣어놔도 에러가 발생했다.



from wx.lib.pubsub import Publisher

ImportError: cannot import name Publisher
https://groups.google.com/forum/?fromgroups=#!topic/wxpython-users/1EikKr2uPmk

다음은 Publisher 를 import 할 수 없다는 error 가 떴다. 이는 source code 에
from wx.lib.pubsub import Publisher
가 있기 때문이다. 그런데 이 녀석이 좀 복잡하게 설정이 되어 있다. 결국 소스를 아래와 같이 조금 수정해야 한다.
from wx.lib.pubsub import setupv1 as psv1
from wx.lib.pubsub import Publisher
자세히 글을 읽지 않아서 모르겠지만,  맨 마지막 답변에서 소개하는 포스트
http://www.py2exe.org/index.cgi/WorkingWithVariousPackagesAndModules
에 pubsub 부분을 보면, setup.py 만 수정해서 가능할 듯도 하다.


See Also





댓글 없음:

댓글 쓰기