###コード
これまで以下のようなコードを使ってフォルダダイアログを出し、フォルダのパスを取得していました(WIN10)。特に問題が起きたことはありませんでした。
python
1import tkinter 2def folderDialog(): 3 root = tkinter.Tk() 4 root.withdraw() 5 6 fTyp=[("","*")] 7 foldername=tkinter.filedialog.askdirectory() 8 return foldername
###問題
最近mac(osX)に乗り換えて、上記のコードを実行したところ、
・ダイアログが開いてフォルダ選択はできる
・foldernameはきちんと返っている
・本体のプログラムも正常終了
しかしダイアログがそのまま出っぱなしになり、実行中マークのままで動かなくなります。
かなり短いコードであるため、何がどうまずいのかがどうにもわかりません。
教えていただけると助かります。
なお、pythonはanacondaでインストールしました。
###追記(atomRunnerで一応の正常動作)
その後いくつか試したので、結果を記載します。
まず前提として、上記のコードはjupyternotebookで実行していました。
###回答いただいたコード(jupyterで実行)
tkと書かれたウィンドウが、ダイアログと共に別途あらわれました。
フォルダ選択後は同様で、やはりダイアログがあらわれたままでした。
###atomRunnerで実行(旧コード、回答コード)
その後、別のところから実行したらどうだろうと思って、atomRunnerで実行してみました。
その結果、旧コード、回答コード共に、ダイアログが正常終了したことを確認できました。
ただ、以下のような表示も同時になされていました(意味は理解できません)。
objc[5028]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fffa98cdb68) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x11a746cd8). One of the two will be used. Which one is undefined.
###希望
以上のように一応動きはしたのですが、理屈がわからず釈然としない部分が残ります。また、jupyterはメインで利用しているので、こちらで正常に動作しないのはかなり不都合があります。
なにか解決策はないものでしょうか。引き続きご回答をお待ちしています。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/14 23:49
2018/03/15 01:30
退会済みユーザー
2018/03/17 10:30 編集
2018/03/17 11:09