2017-02-02 6 views
2

Pyinstall은 프로그램이 Pyinstaller로 컴파일 될 때 _cwt 모듈을 올바르게 가져 오지 못합니다. 나는 _cwt.py이 내 pywt 루트 (경로의 site-packages)에 있고 _cwt.pydpywt\_extensions dir에 있다는 것을 확인했습니다. Python에서 pywt를 성공적으로 가져올 수 있습니다. 아래는 ImportError 추적을 설명하기위한 최소 (비) 작업 예제입니다. pyinstaller pywt_test.spec :Pyinstaller ImportError on pywt`_ctw` 모듈

프로그램 pywt_test.py

# -*- coding: utf-8 -*- 
try: 
    import sys, traceback 
    import pywt 
    print pywt.__version__ 
except ImportError: 
    type_, value_, traceback_ = sys.exc_info() 
    e_msg = traceback.format_exception(type_, value_, traceback_) 
    with open('pywt_error_log.txt','w') as f: 
     f.write(''.join(e_msg)) 

pyInstaller 중에 사양 파일 pywt_test.spec

# -*- mode: python -*- 

block_cipher = None 


a = Analysis(['pywt_test.py'], 
     pathex=['C:\\Users\\user', 'C:\\Users\\user'], 
     binaries=[], 
     datas=[], 
     hiddenimports=[], 
     hookspath=[], 
     runtime_hooks=[], 
     excludes=[], 
     win_no_prefer_redirects=False, 
     win_private_assemblies=False, 
     cipher=block_cipher) 
pyz = PYZ(a.pure, a.zipped_data, 
     cipher=block_cipher) 
exe = EXE(pyz, 
     a.scripts, 
     a.binaries, 
     a.zipfiles, 
     a.datas, 
     name='pywt_test', 
     debug=False, 
     strip=False, 
     upx=False, 
     console=True) 

Pyinstall 명령을 컴파일합니다.

명령 실행 : pywt_error_log.txtpywt_test.exe

내용 :

Traceback (most recent call last): 
    File "pywt_test.py", line 10, in <module> 
    File "c:\users\user\appdata\local\temp\pip-build-3zvqo7\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module 
    File "site-packages\pywt\__init__.py", line 16, in <module> 
    File "c:\users\user\appdata\local\temp\pip-build-3zvqo7\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 546, in load_module 
    File "pywt\_extensions\_pywt.pyx", line 1, in init pywt._extensions._pywt (pywt\_extensions\_pywt.c:32588) 
ImportError: No module named _cwt 

내가 오류를 변경할 수 없음 pathex, hiddenimports 등에 _cwt를 추가했습니다.

_cwt 및 전체 pywt 패키지를 어떻게 Pyinstaller로로드 할 수 있습니까? 참조

버전 :

  • Pywt : 0.5.1
  • pyInstaller 중에 3.2.1
  • 파이썬 : 윈도우 7 64 비트에 2.7.12 64 비트 (아나콘다)

답변

1

숨겨진 가져 오기에 추가하면됩니다.

... 
hiddenimports=['pywt._extensions._cwt'], 
...