FSLをきちんとインストールしたつもりなのに、imglob, imcp, immv のいずれかを実行したり、eddy などのコマンドを実行すると、
imglob: command not found
というエラーが出ることがあります。
これは、FSLのインストールがうまくいっていないサインです。
FSLのサイトにも記載があります。
しかし、もうひと工夫必要なので記載します。
これは、fslpython が正しくセットアップされていなかったことに起因します。
以下の方法をとります。
- fslpythonの削除
- fslpython_install.sh の実行
- ユーザー権限でスクリプトを実行しようとする
- ルート権限でスクリプトを実行しようとする
- imglobの確認
/usr/local/fsl の下にある fslpython ディレクトリがあるようだったら削除します。
cd /usr/local/fsl ls sudo rm -r fslpython
次に、 $FSLDIR/etc/fslconf/fslpython_install.sh を実行します。
しかし、ここにトリックがひとつあります。
理解するために以下を試してみていただければと思います。
$FSLDIR/etc/fslconf/fslpython_install.sh
これは、以下のエラーとなります。
Error - cannot write to /usr/local/fsl!
ルート権限が必要ですね。
それでは、 sudo をつけて実行します。
sudo $FSLDIR/etc/fslconf/fslpython_install.sh
そうすると、以下のエラーとなります。
Error - FSLDIR not given as an argument and $FSLDIR not set!
$FSLDIRなんて知らん!と怒られているわけです。
どうして?と思いましたが、はたと気づきました。
コマンドに $FSLDIR と入っています。
$FSLDIR は、ユーザーには設定されていますが、ルートには設定されていません。
この時の解決法は、「ユーザ環境をひきつぐ、 sudo -E オプションを用いる」です。
sudo -E はユーザー環境を保持します。
-E, –preserve-env
Indicates to the security policy that the user wishes to preserve their existing environment variables.
従って、以下でやれば $FSLDIR が理解されるので解決です。
sudo -E $FSLDIR/etc/fslconf/fslpython_install.sh
これで、fslpythonのインストールが行われます。
インストールにはそれなりの時間がかかります。
これが終わると、もう使えるようになります。
最後にきちんとインストールされたか確認します。
$ imglob Usage: imglob [-extension/extensions] <list of names> -extension for one image with full extension -extensions for image list with full extensions
これでFSLが正しくインストールされました。
コメント欄にて質問をさせていただいてもよろしいでしょうか。こちらを参考に解決法1をやったところ、
Stage 1
By installing this python distribution you agree to the license terms in
/usr/local/fsl/fslpython/LICENSE.txt
100%
/usr/local/fsl/etc/fslconf/fslpython_install.sh: line 188: /usr/local/fsl/fslpython/bin/conda: No such file or directory
/usr/local/fsl/etc/fslconf/fslpython_install.sh: line 189: /usr/local/fsl/fslpython/bin/conda: No such file or directory
/usr/local/fsl/etc/fslconf/fslpython_install.sh: line 190: /usr/local/fsl/fslpython/bin/conda: No such file or directory
/usr/local/fsl/etc/fslconf/fslpython_install.sh: line 191: /usr/local/fsl/fslpython/bin/conda: No such file or directory
Stage 2
100%
Failed to create FSL Python environment – see /var/folders/7k/_kbsvm1541bbwyl24z663xl80000gn/T/fslpythonXXXX.u0ae0ZCf/fslpython_miniconda_installer.log for details
と表示されました。
ここに書いてあるとおり、/usr/local/fslを確認したところfslpythonというディレクトリはありませんでした。FSLインストール時にfslpythonが正しく作成されなかったということでしょうか?もし対処方法をご存知でしたら教えていただきたいです。
環境
macOS10.14.5
FSL6.0.3
python 3.7.4
AnacondaをFSLをインストールする少し前に入れました
nanaさん
/usr/local/fsl/fslpythonがないとすれば、インストールがうまくいっていないということになりますね。
そして、このエラーメッセージを見ると、
/var/folders/7k/_kbsvm1541bbwyl24z663xl80000gn/T/fslpythonXXXX.u0ae0ZCf/
の中にある
fslpython_miniconda_installer.log
にログが残っていそうです。
可能でしたら以下でログをコピペしていただけませんか?そうしたら、理由がわかる可能性があります。
(open -e とは、テキストエディットを開くためのmacOSのコマンドです。)
open -e /var/folders/7k/_kbsvm1541bbwyl24z663xl80000gn/T/fslpythonXXXX.u0ae0ZCf/fslpython_miniconda_installer.log
nanaさん
解決方法がわかりましたので、まとめました。
まだ解決していないようでしたら、下記ご参照ください。
https://www.nemotos.net/?p=3568