あらまし
今まで anaconda でパッケージ管理してたけど、トラブルまみれでもう耐えられないので pipenv に乗り換えまーす。
環境
インストーラー実行するだけのハズなので省略。
Python Releases for Windows | Python.org から最新の x86-64 用インストーラーを入手。
ほぼ全てデフォルトの設定で OK だが 'Add Python to environment variables' だけ忘れずにチェックを入れる。
pipenv 入れる
適当な場所で cmd を開いて以下のコマンド
pip install pipenv
pipenv を入れる対象はベース python 環境。なので python インストール後1回だけの実行で OK 。
これ以降は pip を使わずに pipenv で管理する。
python 拡張だけ入れておく。
vscode workspace をセットアップ
空のプロジェクトを作成する。
- vsocde をなんにも開いてない状態にする
- メニューの File から Close Folder とか Close Workspace とか選ぶ
- フォルダを開く
- File --> Open Folder
- プロジェクトのルートにしたいフォルダを選択
- workspace として保存
- File --> Save Workspace
- プロジェクトルートディレクトリと同じ名前にしておく
- ファイルの保存先はプロジェクトルートディレクトリ直下で
hoge.code-workspace
みたいな名前のファイルがプロジェクトルート直下に作成されているはず。
Visual Studio でいう .sln みたいなもので、この .core-workspace ファイルをダブルクリックすると新しい vscode ウィンドウとともに workspace が開かれる。
以降、この workspace を開いた状態の vscode 上で作業を行う。
作成した .code-workspace ファイルをこんな感じにする。
{
"folders": [
{
"path": "."
}
],
"settings": {
"files.eol": "\n",
"terminal.integrated.env.windows": {
"PATH": "${workspaceRoot}\\.venv\\Scripts;${env:PATH}",
"PIPENV_VENV_IN_PROJECT": "true"
},
"python.pythonPath": "${workspaceRoot}\\.venv\\Scripts\\python.exe"
}
}
- 仮想環境をプロジェクトルート以下に作りたいので
PIPENV_VENV_IN_PROJECT
を書いている
- 仮想環境の方の python を vscode の拡張機能から参照してほしいので PATH と python.pythonPath を書いている
作業用のターミナルを開く
- vscode 組み込みのターミナルを開く
- Ctrl + Shift + `
- それか Ctrl + Shift + P --> Terminal: Create New Integrated Terminal
- 以下の点を確認
- カレントがプロジェクトルートなっている
- pip にパスが通っている
以下、このターミナル上で作業する。
仮想環境を作成
以下のコマンド
cd
pipenv --python 3
実行後プロジェクトルート以下に .venv と Pipfile が生成されているはず。
試しになんかパッケージを入れてみる
pipenv install numpy
一旦動作確認
Ctrl + Shift + ` でターミナルを開いた時に .venv/Scripts/activate.bat
が実行されていれば OK 。
これ以降、ワークスペース内のターミナル下で pip install
すると仮想環境にパッケージがインストールされる。
git 管理設定
- 管理するべきもの
- hoge.code-workspace
- Pipfile
- Pipfile.lock
- 管理してはいけないもの
注意点など
- 環境変数 PATH に
- PATH に仮想環境上の python へのパスを記述している
- そのため pipenv shell すると同一のパスが二重に展開されてしまう
- 問題にならないはずなので気にしない
- インタプリタを明示指定しない
- Ctrl + Shift + P --> Python Select Interpreter で指定できる(多分 python 拡張)
- これを使って明示指定すると
.vscode\settings.json
に環境変数展開後のフルパスが書き込まれる
- ワークスペース設定よりもフォルダ設定のほうが強いので折角書いた設定が上書きされてしまう
- やらかさないように注意
参考