2017-12-17 10 views
3

私のプログラムはanaconda spyderで動作しています。ただし、フリーズした後、tkinterモジュールを使用するすべてのウィジェットは、xgboostおよびpandasを持つウィジェットを除いて機能します。エラーは表示されませんでした。ビルドは機能しましたが、ボタンは機能しておらず、ウィジェットを表示していません。txinter xgboostを表示するcxfreezeウィジェットは表示されませんが、エラーはありません

私はsetup.pyファイルにxgboostをインポートしようとしましたが、tkinterを持つ他のウィジェットはすべて動作しませんでした。まだエラーはありません。誰もこの問題を経験したことがありますか?

これは最も効果的なものです。これは私のsetup.pyです。他のウィジェットはtkinterでは動作しましたが、xgboostとpandasでは動作しませんでした。

from cx_Freeze import setup, Executable 
import sys 
import os 

includes = [] 
include_files = [r"C:/Users/USER/Anaconda3/DLLs/tcl86t.dll", 
     r"C:/Users/USER/Anaconda3/DLLs/tk86t.dll", 
     r"C:/Users/USER/SAMPLE/xgboost_USE.model", 
     r"C:/Users/USER/SAMPLE/P1.ico"] 
os.environ['TCL_LIBRARY'] = "C:/Users/USER/Anaconda3/tcl/tcl8.6" 
os.environ['TK_LIBRARY'] = "C:/Users/USER/Anaconda3/tcl/tk8.6" 
base = 'Win32GUI' if sys.platform == 'win32' else None 


setup(name=application_title, version='1.0', description='SAMPLE', 
     options={"build_exe": {"includes": includes, "include_files":     
     include_files}},executables= 
     [Executable(r'C:/Users/USER/SAMPLE/sample.py', base=base)]) 

助けてください。

+0

これは、エラーが表示されます。また、あなたが取り組んでいるプラットフォームについてもお聞かせください。 – Simon

+1

私はPythonを使用しています。私がそこでメインプログラムを実行したときにanaconda pythonコンソールにエラーはありませんが、フリーズ後にウィジェットの1つが表示されません。 xgboostを持つもの。 –

答えて

0

私はxgboostの経験がありませんが、あなたが明示的にnumpyを含める必要があります。私は私が持っているセットアップファイルを共有します。パンダ(と私が仮定したように削除することができますいくつかの他のもの)

import sys 
import cx_Freeze 
import os.path 
import scipy 

base = None 

if sys.platform == 'win32': 
    base = "Win32GUI" 

#This part may depend on where your installation is 
#This part is essential to copy the tkinter DLL files over 
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__)) 
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6') 
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6') 
os.environ['REQUESTS_CA_BUNDLE'] = r'C:\ProgramData\Anaconda3\Lib\site-packages\botocore\vendored\requests\cacert.pem' 


executables = [cx_Freeze.Executable("test.py", base=base)] 
addtional_mods = ['numpy.core._methods', 'numpy.lib.format'] 

packages = ["idna", "numpy", "boto3", 'boto3.s3.transfer', 'boto3.s3.inject', 'multiprocessing', "xlwt", 'numpy.core._methods', 'pandas'] 
options = { 
    'build_exe': { 

     'include_files':[ 
      os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'), 
      os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'), 
      os.path.dirname(scipy.__file__), 
      r'C:\ProgramData\Anaconda3\Lib\site-packages\botocore\vendored\requests\cacert.pem', 
      r'C:\ProgramData\Anaconda3\Lib\site-packages\botocore', 

     ], 
     'includes': addtional_mods, 
     'packages':packages, 
    }, 

} 

cx_Freeze.setup(
    name = "Test", 
    options = options, 
    version = "1.0.0.0", 
    description = 'Test', 
    executables = executables 
) 
+0

ありがとうございます。私はパッケージとしてxgboostを追加しましたが、モジュールを見つけることができません。また、たとえxgboostが動作していなくてもウィジェットが表示されなければなりません。しかし、私は他のウィジェットと一緒にtkinterを使いました。うまく動いています。もう何をすべきかわからない。 –

+0

私はメインプログラム#from pandas.api.types import CategoricalDtype#でこれを明示的に#pandas#とは別に#setup.pyのパッケージに含めておく必要がありますか? –

+0

xgboostが見つからない場合は、フリーズしようとすると間違いなく問題になります。あなたがパンダを持っていて、addtional_mods = ['numpy.core._methods'、 'numpy.lib.format']、packages = ['numpy'、 'numpy'のように追加したような、 core._methods '、' pandas ']それはうまくいくはずです。 – Gardener85

関連する問題