MacOSでpyinstallerを使ってGUIアプリをexe化しようとしているのですが、作られた実行ファイルを開いても何も起こらず、開いたエフェクトだけが出てくる状態になってしまいます。
エラーメッセージが出てこないと書いていましたが、実行できないものに共通して以下のエラーメッセージが出て来ていました。
FileNotFoundError: Tcl data directory"~~/tcl"not found. Failed to execute script pyi_rth__tkinter
"~~"の部分は自分のディレクトリです。
py2appでは実行ファイルにして実行できたものがpyinstallerではできないという状況になっています。
バージョンは以下のものを使っています。
python 3.6.6
pyinstaller 3.4
実行ファイルをターミナルから実行しても何も言いませんか?
ターミナルから実行してもエラーなどは出ずに一瞬でウィンドウが消えて終わってしまいます
py2appの方でデータファイルを読み込んで使うものをバイナリ化してアプリにしたのですが、そちらでは実行ファイルをターミナルから実行したところ起動したのですが、単純に出来たアプリを開こうとするとエラーが出てしまうということが起こりました。
py2appではこのプログラム以外の簡単なものはアプリ化しそのまま開けたのですが、これだけがターミナルからしか実行できずまた、pyinstallerではpy2appで開けた簡単なものも含めて全て開けないという状況になっています。
追加で質問してしまい申し訳ありません。
pyinstallerでプログラム内で使うデータセットを取り込むにはどうすれば良いでしょうか。
https://github.com/pyinstaller/pyinstaller/issues/3753
このサイトを見たところ単純に一つのプログラムで完結しているものは実行ファイル化できたように思われます。
pyinstaller のコマンドラインオプションで指定するか、 spec ファイルを作り、そこに書き込んでオプションで渡すと思うのですが、どうやっていますか?
あと、 github の issues なんですが、 tkinter をインポートするときに、 hook-_tkinter.py に問題があるよ(python3.7 on MacOSのみ)!って内容ですので、関係ないかと。
質問ありがとうございます。
自分が作っているプログラムは、一つのメインプログラムが他の自分で書いたpythonスクリプトを使い、そのうちの一つの中でcsvファイルを読み込むというものなのですが、pyinstallerのコマンドライン上ではメインプログラムのみを指定して他には特に何も指定はしていません。
また、csvファイルを読み込むpythonスクリプト中で、そのpythonスクリプトと同じディレクトリにある特定の名前のcsvファイルを読み込ませるようにしています。
質問で述べていたエラー自体は、githubにある
pyinstaller --windowed myapp.py
cd dist/myapp.app/Contents/MacOs
mkdir tcl tk
cp -R /Library/Frameworks/Python.framework/Versions/3.7/lib/tcl* tcl/
cp -R /Library/Frameworks/Python.framework/Versions/3.7/lib/tk* tk/
cp -R /Library/Frameworks/Python.framework/Versions/3.7/lib/Tk* tk/
の部分の3.7を3.6にしたところ消えて、csvファイルを用いない他のpythonスクリプトを試して見たところ実行することができるようになりました。
回答1件
あなたの回答
tips
プレビュー