2017-03-23 12 views
1

実行すると、プログラムが使用して動作します:pyinstallerでpyexcel-xlsを使用できません。 Python実行ファイルが動作しません。 Pythonのバージョン3.4.4

Python filename.py 

が、私は実行ファイルが正常に作成された「pyinstaller

pyinstaller -F filename.py 

を使用して、その実行可能ファイルを作成しますが、スクリプトの実行失敗し、次のエラーがスローされます。

Traceback (most recent call last): 
    File "site-packages\pyexcel_io\manager.py", line 160, in create_reader 
    File "site-packages\pyexcel_io\manager.py", line 222, in _get_a_handler 
pyexcel_io.manager.NoSupportingPluginFound: No suitable library found for xls 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "script.py", line 8, in <module> 
    File "site-packages\pyexcel_xls\__init__.py", line 29, in get_data 
    File "site-packages\pyexcel_io\io.py", line 36, in get_data 
    File "site-packages\pyexcel_io\io.py", line 126, in load_data 
    File "site-packages\pyexcel_io\manager.py", line 171, in create_reader 
pyexcel_io.manager.SupportingPluginAvailableButNotInstalled: Please install pyexcel-xls 
Failed to execute script script 

それぞれのPythonスクリプトは次のとおりです。

from pyexcel_xls import save_data , get_data 
data = get_data("registered-market-makers-by-security.xls") 
save_data("file_to_consume.xls", data) 

どのように私はこのエラーを回避し、機能的な.exeファイルを作成することができますか?

私のクライアントにはWindows環境があります。

私もpy2exeを試しましたが、それは私のマシンのWindows dllのいくつかの競合を持っています。

答えて

3

通報

pyexcel-ioはpyInstallerのがサポートしていないプラグインを含む方法を用います。このissueを参照してください。

回避策

この問題を回避するには、ファセットのカップルを持っています。

変更は、私はそれがpyInstallerので作業できるようにするためにpyexcelを変更する方法を示しChange Requestを提出した

をpyexcelする必要がありました。基本的にpyexcel-ioは、フリーズされたモジュールを見つける方法を知る必要があります。

もしpyexcelの人たちが変更要求を受け取ったら、それはあなたに行くでしょう。しかし、もし彼らがしないか、あなたが急いでいる場合は、the changed fileを変更リクエストからサイトパッケージディレクトリにpyexcel_io/__init__.pyとしてコピーすると、pyexcelが動作します。

しかし、pyinstallerはまた、何を含めるべきかを知る必要があります。

pyinstallerも必要なモジュールを含める必要があります。だから、pyInstallerのコマンドラインであなたも行う必要があります:

--hidden-import pyexcel_xls.xls 

アップデート:この修正で

変更要求はpyexcelのmerged into master branchてきました。

更新#2:

修正がpypireleasedてきました。

+0

"pyexcel_io/__ init__.py"が調整されました –

0

pyinstallerの代わりにpy2exeを使用して同じ問題が発生しました。 私のコードといくつかのグーグルでいくつかの調査をした後、私はこのスレッドで終わり、問題が似ていることを知り、解決策も見つけました。 これが他の人にとって助けになる可能性がある場合は、pyexcelライブラリを使用してpy2exeの実行ファイルを生成するために、をpy2exeセットアップオプションに含めて'pyexcel_xls.xls''pyexcel_xlsx.xlsx'を追加しました。だから:

setup(
    name='Hello' 
    version='0.1' 
    description='Hello program' 
    author='Me' 
    options={ 
      'compressed': 1 
      'optimized': 1 
      'includes': ['pyexcel_xls.xls', 'pyexcel_xlsx.xlsx' ...] 
     } 
    console=['hello.py'] 
) 
関連する問題