header_medi8

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin

2016年4月6日水曜日

Visual Studio Code の「code」コマンドでエラーになる場合の対処法

「code」コマンドを使用できるようにするには、Visual Studio Code をターミナルから起動する方法を参照してください。

普通なら、上記リンク先のことを実行すれば「code」コマンドが使えるはずなんですが、
私の場合は、「code」を実行すると以下のエラーが出て Visual Studio Code を起動できませんでした。

$ code
  File "<string>", line 1
    import os,sys; print os.path.realpath(sys.argv[1])
                          ^
SyntaxError: invalid syntax
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory


結論を先に言ってしまうと、実はこれ Python のバージョンの問題でした。


Python 3系だとエラーになる


まずは、以下のコマンドを入力して Python のバージョンを確認してみてください。

$ python -V
Python 3.4.4 :: Anaconda custom (x86_64)

私は、pyenv で Python の管理をしているのですが、pyenv で anaconda3-2.3.0 を使用していて、そこで使われている Python のバージョンは 3.4.4 でした。

$ pyenv versions
  system
  2.7.8
  3.4.2
  3.5.0
* anaconda3-2.3.0 (set by /Users/hoge/.python-version)


エラーを修正する


ここで、もう一度「code」実行時のエラーを見てみましょう。

$ code
  File "<string>", line 1
    import os,sys; print os.path.realpath(sys.argv[1])
                          ^
SyntaxError: invalid syntax
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory

どうやら、print の構文エラーで怒られているようです。

実は。Python 3 では、print の仕様が変わっていて、print() にしないといけません。

なので、エラー箇所を修正します。

「/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code」

をエディタで開いて、以下の部分を変更します。

修正前:
function realpath() { python -c "import os,sys; print os.path.realpath(sys.argv[1])" "$0"; }

修正後:
function realpath() { python -c "import os,sys; print(os.path.realpath(sys.argv[1]))" "$0"; }

print() の書き方は、python 2系でも使用できるので、2系を使用している人も将来エラーが出て焦らないように変更しておくと良いと思います。

0 件のコメント:

コメントを投稿