ElpyでのRPC Process のPythonバージョン

この記事ではElpyでのRPC ProcessのPythonバージョンに関するエラーについて記載しています。

エラー

ElpyのRPC Processは、デフォルトで.emacs.d/elpy/rpc-venvに専用の仮想環境を作成しますが、環境よっては以下のエラーが発生して、仮想環境が作成できない場合があります。

Elpy needs the 'virtualenv' or 'venv' python packages to create its virtualenv. Please install one of them or disable the dedicated virtualenv with '(setq elpy-rpc-virtualenv-path 'current)'

原因の可能性の一つ

上記エラーはElpyが仮想環境を作成する際にデフォルトでpythonコマンドを参照しているのですが、以下のように対応するコマンド(virtualenvやvenv)が存在しない場合に発生する場合があります。

  • pythonコマンドのpythonが2系かつvirtualenvがインストールされていない
  • pythonコマンドのpythonが3.3未満(venvが取り込まれていないバージョン)

対応

上記が原因の場合は、Python2のサポートも終了されていますし、Python3系をメインで使いますので、ElpyのRPC Processが使うPythonのバージョンをPython3系に指定します。

elpy-rpc-python-commandでRPC Processで参照するPythonを指定できますので、以下のようにpython3コマンドを指定します。(python3コマンドが無い場合は適宜Python3
をシステムにインストールするか、存在するpython3.xのコマンドを指定してください)

(setq elpy-rpc-python-command "python3").

私は~/.emacs.d/init.elに上記の設定を記載しています。

上記設定をすることで、ElpyがPython3系のvenvを使ってRPC Process用の仮想環境を作成できるようになるので、エラーが解消します。

参考URL

https://elpy.readthedocs.io/en/latest/concepts.html#option-elpy-rpc-python-command