PythonのTkInterを用いて作成したGUIアプリケーションをPyInstallerを用いて単一実行ファイル(myapp.app)にしました。(MacOSのPyInstallerはTclの互換性がないバージョンであることからクラッシュするためこちらのサイトの解決策で解決しました)
そして、私のMacでは無事にmyapp.appを実行することができたのですが、友人2名(Macユーザー)にそのアプリケーションを利用してもらおうとしたところ、二人とも起動できないとのことでした。考えられる原因、または、他人のPCだと動かない場合の個人でのテストの方法をご存知の方がいらっしゃいましたら教えていただきたいです。
原因特定のために必要な情報がありましたら追記させていただきます。
###試したこと
- 圧縮が原因ではないか?
zipファイルに圧縮してから、友人に送っていたため、圧縮した際にファイルが壊れてしまったのではないかと考えました。そこで送った圧縮ファイルを展開したところ、私のPCでは実行できました。
2. メール送信が原因ではないか?
友人にメールでzipファイルを送ったことが原因ではないかと考えました。そこで私自身の他のメールアドレスにzipファイルを送信して、そのファイルをダウンロード・展開したところ、私のPCでは実行できました
###環境
私のPC:
macOS Catalina
バージョン10.15.7
機種MacBook Pro
友人AのPC:
macOS Catalina
バージョン10.15.7
機種MacBook Pro
友人BのPC:
macOS Catalina
バージョン10.15.7
機種Mac mini
Python 3.6.12
PyInstaller 4.0
Tkinter 8.6.10
(2021/1/13 15:00)
###新しく試したこと(追記 2021/1/15/13:00)
PyInstallerで「コンソールあり」にして単一実行ファイル化したところ、友人のPCで実行時以下のエラーが出ました。
(friend-name:友人のユーザー名, my-name:私のユーザー名)
console
1Mac-mini-2:~ friend-name$ /Users/friend-name/Downloads/myapp.app/Contents/MacOS/myapp ; exit; 2Traceback (most recent call last): 3 File "myapp.py", line 676, in <module> 4 File "myapp.py", line 672, in main 5 File "myapp.py", line 39, in __init__ 6 File "tkinter/__init__.py", line 2023, in __init__ 7_tkinter.TclError: Can't find a usable init.tcl in the following directories: 8/Users/friend-name/Downloads/myapp.app/Contents/MacOS/tcl 9/Users/friend-name/Downloads/myapp.app/Contents/MacOS/tcl8.6 10/Users/my-name/opt/anaconda3/envs/Tkinter/lib/tcl8.6 11/Users/friend-name/Downloads/myapp.app/Contents/lib/tcl8.6 12/Users/friend-name/Downloads/myapp.app/lib/tcl8.6 13/Users/friend-name/Downloads/myapp.app/Contents/library 14/Users/friend-name/Downloads/myapp.app/library 15/Users/friend-name/Downloads/myapp.app/tcl8.6.10/library 16/Users/friend-name/Downloads/tcl8.6.10/library 17 18/Users/friend-name/Downloads/myapp.app/Contents/MacOS/tcl/init.tcl: version conflict for package "Tcl": have 8.6.10, need exactly 3.5.9 19version conflict for package "Tcl": have 8.6.10, need exactly 3.5.9 20 while executing 21"package require -exact Tcl 3.5.9" 22 (file "/Users/friend-name/Downloads/myapp.app/Contents/MacOS/tcl/init.tcl" line 19) 23 invoked from within 24"source /Users/friend-name/Downloads/myapp.app/Contents/MacOS/tcl/init.tcl" 25 ("uplevel" body line 1) 26 invoked from within 27"uplevel #0 [list source $tclfile]" 28 29 30This probably means that Tcl wasn't installed properly. 31 32[911] Failed to execute script myapp 33logout 34Saving session... 35...copying shared history... 36...saving history...truncating history files... 37...completed. 38Deleting expired sessions...476 completed. 39 40[プロセスが完了しました] 41
エラーによるとtclのバージョンに問題がありそうですが、解決策はわかりません。
回答1件
あなたの回答
tips
プレビュー