🐙
[小ネタ]pipenvのvenvとPipfileの対応を確認して不要なものを消したい
やりたいこと
- pipenvの操作を失敗して、不要なvirtualenvsが沢山できていたので掃除しました。
- 念のためPipfileとの関連を確認しながら消しました。
課題
VSCodeでPythonインタプリタを選択しようとしたら、、あら?みたいな大量の環境が。これを消して整理したいです。(pyenvでPythonを複数インストールしているのも原因なのですが、ここでは扱いません)
やったこと
確認が必要な場所
- venvの場所(
~/.local/share/virtualenvs/
) - Pipfileの場所(各プロジェクトのフォルダ)
が別々にあるので確認します。venv名はプロジェクトのフォルダ名から作られますが、(記憶が薄いので)確認が必要でした。
存在するvenvを探す
ls -ltrh ~/.local/share/virtualenvs/
これで一覧で出てきます。
例えばmy-env-xxxを消したいとき
rm -fr path/to/my-env-xxx
対応するPipfileを探す
find ~/.local/share/virtualenvs -name ".project"
.project
の中にプロジェクトへのパスがあります。以下でPipfileのディレクトリが出ます。ディレクトリが存在しない(移動している)ときもあります。
cat ~/.local/share/virtualenvs/my-env-xxx/.project
Pipfileの場所から探す
Pipfileの場所が分かっているとき、対応するvenvを探すには
pipenv --venv
とやると
/xxxx/.local/share/virtualenvs/my-evn-xxx
venvのパスが出力される。
(Pipfileがあるだけのときのエラー:No virtualenv has been created for this project yet!
)
対応するvenvを削除する(Pipfileは別途)
pipenv --rm
Pipfileを探す
これで、Pipfileがあるだけのときも見つかります。
find ./ -type f | grep Pipfile$
まとめ
pipenv環境のPipfileを探したり消したりする方法についてまとめました
Discussion