2017-02-02 27 views
2

プログラムがPyinstallerでコンパイルされたときに、Pywtが_cwtモジュールを正しくインポートしていません。私は_cwt.pyがpywtのルート(パス上のサイトパッケージ内)に存在し、_cwt.pydpywt\_extensionsディレクトリにあることを確認しました。 Pythonからpywtを正常にインポートできます。以下は、ImportErrorトレースバックを示す最小(非)動作例です。 pyinstaller pywt_test.specPyinstaller 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
  • パイソン:Windows 7の64ビットに2.7.12 64(アナコンダ)

答えて

1

隠しインポートに追加してください:

... 
hiddenimports=['pywt._extensions._cwt'], 
... 
関連する問題