天天看點

Python:conda install 和pip install的差別

Python:conda install 和pip install的差別

pip是個安裝包的軟體,conda是個環境管理的工具。conda能夠安裝多個python解釋器,pip不行。conda install這種方式安裝的庫都會放在/Users/orion-orion/miniforge3/pkgs目錄下。這樣的好處是,當在某個環境下已經下載下傳好了某個庫,再在另一個環境中還需要這個庫時,就可以直接從pkgs目錄下将該庫複制至新環境而不用重複下載下傳。

pip是個安裝包的軟體,conda是個環境管理的工具。conda能夠安裝多個python解釋器,pip不行。是以conda在實際開發中是主要用來隔離不同的python版本和Tensorflow&Pytorch的環境(env)的。

一般Python可分為系統自帶的和在conda中安裝的。我們可以用下列指令檢視本機上所有可用的Python環境:

(base) orion-orion@MacBook-Pro /usr % python -m site
sys.path = [
    '/usr',
    '/Users/orion-orion/miniforge3/lib/python39.zip',
    '/Users/orion-orion/miniforge3/lib/python3.9',
    '/Users/orion-orion/miniforge3/lib/python3.9/lib-dynload',
    '/Users/orion-orion/miniforge3/lib/python3.9/site-packages',
]
USER_BASE: '/Users/orion-orion/.local' (exists)
USER_SITE: '/Users/orion-orion/.local/lib/python3.9/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
           

然後我們再說兩種方式:

conda install xxx:這種方式安裝的庫都會放在

/Users/orion-orion/miniforge3/pkgs

目錄下。這樣的好處是,當在某個環境下已經下載下傳好了某個庫,再在另一個環境中還需要這個庫時,就可以直接從pkgs目錄下将該庫複制至新環境而不用重複下載下傳。

pip install xxx:這是就要兩種情況,一種情況就是此時使用的是conda中安裝的python,那麼xxx會被安裝到

/Users/orion-orion/miniforge3/lib/python3.9/site-packages

檔案夾中;如果目前用的是系統的python,那麼xxx會通常會被安裝到

/Users/orion-orion/.local/lib/python3.9/site-packages

檔案夾中

下面我們來看下conda中的python環境。我們可以用指令

conda info --env

來檢視目前的所有conda環境:

(base) orion-orion@MacBook-Pro miniforge3 % conda info --env
# conda environments:
#
base                  *  /Users/orion-orion/miniforge3
           

這裡我們隻有初始的base環境,即

/Users/orion-orion/miniforge3

目錄,此環境中Python的安裝目錄為:

/Users/orion-orion/miniforge3/lib/python3.9
           

而該Python版本對應的包的目錄為:

/Users/orion-orion/miniforge3/lib/python3.9/site-packages
           

可以看到,這個目錄下即我們所安裝的Python包:

(base) orion-orion@MacBook-Pro site-packages % ls |grep torch
torch
torch-1.8.0.dist-info
torch_tb_profiler
torch_tb_profiler-0.3.1.dist-info
torchtext
torchtext-0.6.0.dist-info
torchvision
torchvision-0.9.0a0.dist-info
           

參考

  • [1] https://www.zhihu.com/question/395145313

數學是符号的藝術,音樂是上界的語言。