はじめに
生命科学系を中心に,画像解析に用いられるオープンソースソフトウェア「ImageJ Fiji」をmac OSにインストールし,Pythonで動作テストをさせた際,初っ端からJavaのエラーメッセージが表示され出鼻をくじかれてしまいました.
その解決について,ネット上に書かれたエントリが見つからなかったため,自戒と,もしかしたら誰かの役に立つかもと思いメモしておきます.
動作環境
- MacBook Pro Late2016
- mac OS Catalina 10.15.6
- Python 3.8.2
エラーの概要
Fijiであらかじめ作成しておいたPythonのファイルを開き,動かすと…
Javaのエラーメッセージが出現します.
エラーは以下のようなことが書かれており…
java.lang.IllegalArgumentException: Cannot create PyString with non-byte value
調べたところ,PyStringの引数に全角文字が含まれているときに出るエラーとのことでした.
解決方法(多分)
動作させるPythonファイルのファイルパスに全角文字が含まれているのが問題だったようです.
動作ファイルが含まれるフォルダ名をアルファベットに変更すると解決しました.簡単!
色々試してみたところ,今回のエラーに関係するのは
- 対象のファイル名
- 対象のファイルパスに含まれるすべてのフォルダ名
だと思われます.
画像ファイルは,Fijiで開きアクティブにしておけば全角文字を含んだファイルパスでも問題ないですが,パスをPython側で指定して開く場合,同様に全角文字が含まれないパスにする必要がありそうです.
念の為,ホームディレクトリの.localizedファイルを削除したりもしてみましたが,動作には関係ありませんでした.
感想
こんな簡単なところで躓くとは…どおりで誰も何も書いていないわけだよ!