2017-08-13 14 views
1

私はPythonとスタックオーバーフローの両方に新しいですTkinterのウィンドウを開いていないので、私は非常に質問をする時に経験していないんだけど、私は2時間以上、このサイトを検索してきたと私はまだ見つけることができません私の問題の解決策。私はcx_freezeをダウンロードしていると私のsetup.pyファイルを作成しました:cx_freezeは.exeが

from cx_Freeze import setup, Executable 
import sys 
import os 
import tkinter 

base = None 

if sys.platform == 'win32': 
base = None 


executables = [Executable("Bounce.py", base=base)] 

packages = ["tkinter"] 
options = { 
    'build_exe': { 

     'packages': ["os", "tkinter"], 
    }, 

} 

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

includes = [] 
include_files = 
[r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tcl86t.dll", 

r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tk86t.dll"] 

setup(
    name = "Bounce", 
    version = "1.0", 
    description = "Test", 
    options = options, 
    executables = executables 
) 

私の実際のPythonプログラムは、Tkinterのモジュールで実行され、私がいた私は非Tkinterのパイソンファイルでこれを試してみました同じプロセスを、テストしました完全に.exeに変換されます。私は.exeファイルにBounce.pyを変換するcx_freezeを使用して、このsetup.pyを実行すると、.exeのプログラムが開き、すぐに閉じます。 Bounce.pyファイルを印刷コンソールに何もするので、ウィンドウサイズはI Tkinterのウィンドウのコンソールのそれとではありませんが、私は(開いたウィンドウは、コンソールまたはTkinterのウィンドウのためであるかどうかわからないんだけどあまりにも速く閉じるので、500 x 400ピクセルに指定してください)。

if sys.platform == 'win32': 
base = None 

へ:私はsetup.pyファイルのシステムプラットフォーム仕様変更したときに興味深いことに、 https://i.stack.imgur.com/yA7ZG.png

:ガイドのいくつかのような
if sys.platform == 'win32': 
base = 'Win32GUI' 

が言うと、私は実際にはエラーメッセージが表示されます

私は、そのエラーメッセージが何を意味しているのか、何が起こっているのかを知りません。これを解決する方法について何か考えがあるなら、私に知らせてください。私はすべてのフォーラムを検索したような気がして、私はこの問題に最初だ:/

答えて

0

あああなたは今まであなたはそれを使用するのではなく、include_filesを作成したことがわかりました!

質問する前に多くの情報を検索する必要があります。tcl8.6.dlltk86t.dllを追加してtkinterの実行に役立てる必要があります(詳しくは説明できません)。

実際、includesinclude_filesbuild_exeに入力するだけです。

ここに私のコードです:

from cx_Freeze import setup, Executable 
import sys 
import os 
import tkinter 

base = None 

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


executables = [Executable("Bounce.py", base=base)] 

packages = ["tkinter"] 
options = { 
    'build_exe': { 
     'includes': ["os", "tkinter"], 
     'include_files': [r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tcl86t.dll", 
          r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tk86t.dll"] 
    }, 

} 

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


setup(
    name="Bounce", 
    version="1.0", 
    description="Test", 
    options=options, 
    executables=executables 
) 

は最後に、私はincludesにあなたがpackagesを変更助言する限り、私が懸念していますように、私は `PyInstaller`が、` cx_Freezeを使用したいpackages

+0

よりも優れて動作します' – WSY

+0

ありがとうございました!問題はinclude_filesを持っていて、実際に使われていないことを除いて変数としてインクルードしていることでした。あなたのプログラムをコピーしたところ、完璧に機能しました(include_filesを別のDLLディレクトリに変更しなければならなかったのですが、唯一の違いでした)。私はこれが完全な独立した投稿にふさわしいかどうかはわかりませんが、私のプログラムを終了した後にポップアップするこのエラーメッセージを取り除く方法があるかどうかを知りたかったのです。[link] http://i.imgur .com/hGzT6eP.png tkinterが閉じているときにコンソールに表示されるエラーメッセージですが、実際には "エラー"ではありません – MolotovPeep

+0

'include_files'をどのように変更したのか分かりません(私のマシン)。あなたは、コードを調整する前に(私は本当にアナコンダに関する有用なほとんど何も知らない)の代わりにアナコンダのpythonの端子を使用してスクリプトを実行しようとすることができます。 – WSY

関連する問題