はじめに
現在(2018-11-20)pipenv
がPythonの仮想環境管理ツールとして公式推薦されていますが、SpacemacsのPython Layerはpipenv
で行う仮想環境管理はまだ一部対応していないようです。なんとかSpacemacsのPython Layerとpipenv
を一緒に使えるように設定できましたのでやり方を共有します。
前提条件
-
pipenv
がインストールされています。 -
pipenv
の使い方を覚えています。- まだ覚えていない方はこちらをご参照ください。
- Spacemacsの基本、Layerの使い方を覚えています。
pipenv
の使い方は変わらないです
-
pipenv
は通常の使い方で大丈夫です。 - 初期設定ですと仮想環境は
~/.local/share/virtualenvs/
の下に作成されますがそのままにしてください。
シンボリックリンクを作ります
$ cd ~
$ ln -s .local/share/virtualenvs/ .virtualenvs
.venv
ファイルを作成します
- ProjectのWorking Directory(Pipfileが置いてあるDirectory)に作成します。
- 内容は仮想環境の相対パスだけです。
- 以下のコマンドで作れます。
$ echo "$(basename $(pipenv --venv))" > .venv
確認
# 仮想環境の絶対パスを確認
$ pipenv --venv
/Users/chris/.local/share/virtualenvs/scripts-JqqYlDna
# リンクも作ったので ~/.virtualenvs/ の下にもあります
$ ls ~/.virtualenvs
my_project-AZnI3gEY scripts-JqqYlDna
# ~/.virtualenvsに入ったら相対パスがscripts-JqqYlDnaになります。.venvにもこのパスが載っています
$ cat .venv
scripts-JqqYlDna
最後に
対策方法は他にもあると思うので追加や訂正がある場合コメントを残していただければ幸いです。