2017-02-06 13 views
0

matplotlib.pyplotを使ってプロットを生成して保存するコンソールベースのプログラムをフリーズしようとしています。ここに私のsetup.pyスクリプトです(。私は、プレビューしたり、それらが保存される前に、とにかくプロットを表示する必要はありません):私はプログラムをコンパイルすることができますmatplotlibとcx_freezeに関する問題

from cx_Freeze import setup, Executable 
import os 

os.environ['TCL_LIBRARY'] = "C:\\Program Files\\Anaconda3\\tcl\\tcl8.6" 
os.environ['TK_LIBRARY'] = "C:\\Program Files\\Anaconda3\\tcl\\tk8.6" 

setup(name='FLOUResence.exe', 
    version='0.1', 
    options = {"build_exe": {"packages":["pandas", "numpy", "scipy", "matplotlib"]} 
      }, 
executables = [Executable(script='caller.py', targetName='FLOUResence.exe', 
icon="icon.ico", base='Console')] 
) 

が、私はグラフモジュールを実行したときに、それを返します次のエラー:

matplotlibのは、ロード/ QtのGUIを使用したいが、それはだから、コンソールアプリケーションcx_freezeはQtのをロードしないので、私は、言うことができるものから、

This application failed to start because it could not find or load the Qt platform plugin "windows" in "".
Reinstalling the application may fix this problem.

?これは問題の正しい解釈ですか?どのようにこの問題を解決するための任意の考えですか?

答えて

1

あなたの配布ディレクトリにQtプラットフォームプラグインを追加する必要があります。試してみて、package/distディレクトリにPyQtインストールのLibrary\plugins\platformsをコピーしてください。これがうまくいく場合は、include_filesビルドオプションでディレクトリを追加できます。プラットフォームディレクトリがc:\miniconda\Library\pluginsであるように私はミニコンダを使用しています。

setup(name='FLOUResence.exe', 
    version='0.1', 
    options = { 
     "build_exe": {"packages":["pandas", "numpy", "scipy", "matplotlib"], 
         "include_files": [r'c:\miniconda\Library\plugins\platforms']} 
    }, 
    executables = [Executable(script='caller.py', targetName='FLOUResence.exe', 
        icon="icon.ico", base='Console')] 
)