Skip to main content

Conda env not isolate

一個神奇的 bug(?) 或是 Feature

問題

我們希望各個 environment 之間是獨立的,但其實

  • 在 Conda environment 中,仍然會參考到 ~/.local 中的 package
  • pip install --user xxx 使用 --user,package 會被安裝在 ~/.local 裡面
  • ~/.local/lib/python3.x/site-packages 裡面已經很多東西,會發現即使是新的環境, pip list 仍會抓到很多東西。
python -m site

Pasted image 20231030203933.png

解決方法

獨立 Conda env

如果 ~/.local/lib/python3.x 不存在,就不會有任何問題。如果家目錄的環境已經亂糟糟,設定 env vars PYTHONNOUSERSITE ,讓 conda 環境不要引入 ~/.local

conda env config vars set PYTHONNOUSERSITE=1 -n myenv

正確安裝 package

  • 使用 conda install
  • pip install 不要帶有 --user
    • 要注意有沒有在其他地方設定過,例如 ~/.pip/pip.conf

查看 package 被安裝在哪裡

pip list -v

Pasted image 20231030204719.png


Pasted image 20231030195341.png