FSL で imglob: command not found と出た時の対処方法

FSLをきちんとインストールしたつもりなのに、imglob, imcp, immv のいずれかを実行したり、eddy などのコマンドを実行すると、

imglob: command not found

というエラーが出ることがあります。

これは、FSLのインストールがうまくいっていないサインです。

FSLのサイトにも記載があります。

しかし、もうひと工夫必要なので記載します。

これは、fslpython が正しくセットアップされていなかったことに起因します。

以下の方法をとります。

  1. fslpythonの削除
  2. /usr/local/fsl の下にある fslpython ディレクトリがあるようだったら削除します。

    cd /usr/local/fsl
    ls
    sudo rm -r fslpython
    
  3. fslpython_install.sh の実行
  4. 次に、 $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 は、ユーザーには設定されていますが、ルートには設定されていません。
      ならば解決方法は2つです。

    • 解決法1: ユーザ環境をひきつぐ、 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
      
    • 解決法2: $FSLDIRを使わない
    • 考えてみれば最初から $FSLDIR を展開しておけばいいわけですね。

      echo $FSLDIR
      /usr/local/fsl
      sudo /usr/local/fsl/etc/fslconf/fslpython_install.sh
      

      これで、fslpythonのインストールが行われます。
      インストールにはそれなりの時間がかかります。
      これが終わると、もう使えるようになります。

  5. imglobの確認
  6. 最後にきちんとインストールされたか確認します。

    $ imglob
    Usage: imglob [-extension/extensions] <list of names>
           -extension for one image with full extension
           -extensions for image list with full extensions
    

これでFSLが正しくインストールされました。

Print Friendly, PDF & Email

3 thoughts on “FSL で imglob: command not found と出た時の対処方法

  1. コメント欄にて質問をさせていただいてもよろしいでしょうか。こちらを参考に解決法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

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください