Skip to main content

Python の ◯◯管理

いろいろあって分からん。

環境汚すのが怖くて本のサンプルを試してみるのが億劫になる。

役割まとめ

管理の対象 →環境全体への影響Python 自体の
バージョン
パッケージの
バージョン固定
パッケージ
依存関係の解決
メモ
venv◯ (ほぼなし)- (作成元に依存)△ (requirements.txt等で固定)-標準の機能
pip△ (venv外だと汚す)-標準の機能
pyenv△ (globalだと汚す)--OS 標準の Python を使いたくないときだけ使う
conda△ (base自動ONだと汚す)numpy, pandas, matplotlib 等、数値計算で好んで使われる
  • 「汚す」は具体的に言うと、「PATH 環境変数が書き換わって、python, pip が想定と違うものを指す」か

個人的方針

全体

  • 普段の環境の分離には venv, pip を使う
  • 書籍などのサンプルで使う場合は conda を使用する (numpy, pandas, matplotlib, jupyter と相性が良いという理解)
  • pyenv は、個人的には使用しない
  • poetry?, uv?, docker? → いまは見ない!知らないことにする

という方針にしてみよう。

venv

  • venv の activate は必要なときに実施(.bash_profileなどで activateしない)と運用すると分離の利点が生きる
    • 慣れるまで面倒そう
    • よく呼ぶケースはシェルスクリプトなどの wrapper から呼ぼう

conda

パッケージに種類がある

  • anaconda : numpy, pandas, matplotlib など全部入り
  • miniconda : conda 本体のみ

venv のように環境を分離して使う意味あいでは、

  • miniconda を使用する
  • .bash_profile などには書かない(auto_activate_base 無効にする)

とやれば、環境を汚さずに済みそうだ

bash
conda config --set auto_activate_base false

以下広告