2014-06-23 4 views
2

CX_Freeze로 실행 파일을 빌드하고 .exe를 실행하려고하면이 오류가 발생합니다. CxFreeze가 lxml을 인식하지 못한다는 것을 이해합니다. 내 setup.py이 포함하려고 노력하지만CxFreeze가 특정 가져 오기를 인식하지 못합니다.

Traceback(most recent call last): 
    File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", 
line 27, in <module> 
    exec(code, m._dict_) 
    File "mainFile.py", line 2, in <module> 
    File "C:\Users\user\TestFile\testPyQt.py",line 11, in 
    <module> 
    import myFile 
    File "C:\Users\user\TestFile\myFile.py", line 4, in 
    <module> 
    from lxml import etree 
    File "ExtensionLoader_lxml_etree.py", line 22, in <module> 
    File "ExtensionLoader_lxml_etree.py", line 14, in _bootstrap_ 
    file "lxml.etree.pyx", line 84, in init lxml.etree 
    (src\lxml\lxml.etree.c:191837) 
    ImportError:cannot import name_elementpath 

내 setup.py이 있습니다

INCLUDE_MODULES = [ 

    'lxml', 
    'xml.etree.ElementTree', 
    'xml.etree.ElementPath', 
    'libxml2' 
] 
+0

library.zip에서 lxml을 제거하고 전체 lxml 패키지를 exe가있는 빌드 디렉토리에 복사하면 작동합니까? –

+0

어디에서 libary.zip을 찾을 수 있습니까? – sudobangbang

+0

또한 cx_Freeze가 exe를 만드는 빌드 디렉토리에 있습니다. –

답변

3

그것은 공간이 없습니다 오류 메시지처럼 약간 보인다. 나는`lxml._elementpath '를 임포트 할 수 없다는 불평을 꽤 확신한다. 이것은 모듈이 lxml에 의해 조건부로 임포트되기 때문입니다.

해결책은 목록에 lxml._elementpath을 추가하는 것입니다.

Why am I getting this ImportError?

cx_Freeze ImportError: cannot import name

+0

감사합니다. 매우 유용합니다. – sudobangbang

0

이었다 내 경우 솔루션 ThomasK 도움이 무엇을 :

참고,이 솔루션은 효과적으로 사람들이 나 cx_Freeze과 py2exe에 또는 다른 패키지와 비슷한 문제가 있었다 이러한 소스에서 온다 jsut은 python \ site-packages \ lxml로 이동하여 \ dist 폴더에 전체 폴더를 복사합니다. 여기서 cxfreeze는 다른 모든 파일을 복사합니다.

물론 이것은 문제 해결 자체가 아니라 실용적인 해결책입니다.