ぬうぱんの備忘録

技術系のメモとかいろいろ

作った曲一覧はこちら

どうしても anaconda から逃げ出したかった

あらまし

今まで anaconda でパッケージ管理してたけど、トラブルまみれでもう耐えられないので pipenv に乗り換えまーす。

環境

vscode 入れる

インストーラー実行するだけのハズなので省略。

python 入れる

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 で管理する。

vscode 拡張

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 を書いている
  • 仮想環境の方の pythonvscode拡張機能から参照してほしいので 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環境変数展開後のフルパスが書き込まれる
    • ワークスペース設定よりもフォルダ設定のほうが強いので折角書いた設定が上書きされてしまう
    • やらかさないように注意

参考