2011-03-15 2 views
22

나는 lxml에 의존하고 파이썬 인터프리터를 통해 실행할 때 잘 작동하는 wxpython 애플리케이션을 가지고있다. py2exe에와 EXE 파일을 만들 때, 나는Py2exe lxml woes

ImportError: No module named _elementpath 

내가 다음 python setup.py py2exe -p lxml 사용이 오류가 있고 난

ImportError: No module named gzip 

사람이 알려 수 말하는 또 다른 하나를 위의 오류를 얻을 수 있지만 하지 않은 것 문제는 해결할 수있는 방법입니다. 또한 내 dist 폴더에 libxml2, libxslt 등의 dll 파일을 넣어야합니까? 컴퓨터를 검색 했으므로이 파일을 찾지 못했지만 필요하지 않을 수 있습니다.

감사합니다.

편집 : 방금 시도했습니다 python setup.py py2exe -p -i gzip 및 EXE가 만들어졌습니다. 그러나 생성 된 exe는 실행되지 않습니다. 더블 클릭하면 아무 것도하지 않습니다.

여기에 내가

from py2exe.build_exe import py2exe 
from distutils.core import setup 

setup(windows=[{"script": "gui.py"}]) 



Edit2가를 사용하고있어 setup.py 스크립트입니다 : 나는 대안으로 나 cx_Freeze를 사용하여 시도,하지만 같은

ImportError: No module named _elementpath 

오류가 발생했습니다. 그 후 어떻게 진행해야할지 몰랐습니다.

답변

37

Py2exe를 사용하면 options 인수가 setup()에 포함되도록 추가 패키지/모듈을 지정할 수 있습니다 (자동으로 감지되지 않는 경우). 다음은 작동합니다 : 나는 또한 최근에 지원을 내장하고있다 LXML을 포함하여 잘 알려진 패키지의 번호를 PyInstaller을 발견했습니다

from distutils.core import setup 
import py2exe 

setup(
    windows=[{'script': 'gui.py'}], 
    options={ 
     'py2exe': 
     { 
      'includes': ['lxml.etree', 'lxml._elementpath', 'gzip'], 
     } 
    } 
) 

, 그건뿐만 아니라 시도 할 가치가있을 수도 있으므로.

+1

안녕하세요, 스크립트는했다. 덕분에 –

+0

** pyc, dll 등을 사용하지 않고 ** 하나의 실행 파일 **로 만들고 싶다면 다음과 같이 할 수 있습니다 : from distutils.core import setup; 가져 오기 py2exe, sys; sys.argv.append ('py2exe'); 설치 ( \t windows = [{ '스크립트': 'your_script.PY '}] \t ZipFile를 = 없음, \t 옵션 = { \t \t'py2exe에 ' \t \t는 { \t \t \t가'bundle_files '1 \t \t \t 는'압축 : 사실 \t \t \t '포함': [ 'lxml.etree', 'lxml._elementpath', 'gzip'], \t \t} \t} ) –

0

setup.py 파일을 수정 한 후에 다른 작업을 수행해야하는 경우가 있습니다.

here, "eggs"아카이브에 패키지가 설치되어있는 경우 패키지를 제거해야합니다. 그런 다음 다음과 같이 "-Z"옵션을 사용하여 아카이브를 dezip하는 easy_install을 강제로 다시 설치 (내가 paramiko 패키지에 문제가 있었다) :

pip uninstall paramiko 
easy_install -Z paramiko