python 多環境多版本

背景

  • 開發過程中,需要使用 python 2 或 python 3 或 不同版本的 python 包

目標

  • 通過工具,管理不同版本的 python 或 python 環境,以適應不同需要,例如 在 python 2 和 python 3 之間切換;再如,切換到安裝有指定版本 python 包的 python 環境

解決方案

  • conda 是一個包管理器,也是一個環境管理器
  • 通過 conda 工具,管理 python 多環境、多版本

準備工作

查看 conda 命令的幫助信息

# 以 update 命令爲例,查看 conda 命令幫助
conda update --help

確認已經安裝好 conda 工具

conda --version

升級 conda

conda update conda

conda 管理 python 環境

創建 python 環境

# 基於安裝 conda 時的 python 版本
# 創建一個名爲 py_env_for_test
# 包含 biopython 包的 python 環境
conda create --name py_env_for_test biopython

# 基於 python 3
# 創建一個名爲 py3_env_for_test
# 包含 Astroid 和 Babel 包的 python 環境
conda create --name py3_env_for_test Astroid Babel

查看已經存在的 python 環境

# 查詢結果中,通過星號“*”標識當前被激活的 python 環境
conda info --envs

通過 python 環境名激活、切換 python 環境

# 激活(切換到)名爲 py_env_for_test 的 python 環境
source activate py_env_for_test

# 激活(切換到)名爲 py3_env_for_test 的 python 環境
source activate py3_env_for_test

# 激活(切換到)系統 python 環境(退出當前環境)
source deactivate

創建已有 python 環境的副本

# 創建 py_env_for_test 環境的副本,起名爲 py_env_for_test_clone
conda create --name py_env_for_test_clone --clone py_env_for_test

通過 python 環境名刪除指定 python 環境

# 刪除名爲 py_env_for_test_clone 的 python 環境
conda remove --name py_env_for_test_clone --all

管理 python 環境下的 python 包

查看指定 python 環境下的所有 python 包

# 查看當前 python 環境下的所有 python 包
conda list

# 查看 py3_env_for_test 環境下的所有 python 包
conda list --name py3_env_for_test

查找安裝包

# 查找所有可被安裝的 python 及版本信息
conda search python

# 查找所有可被安裝的名爲 numpy 的 python 包及版本信息
conda search numpy

# 通過正則表達式,模糊查詢所有可被安裝的名字中包含 nump 的 python 包及版本信息
conda search '*nump*'

# 查找名爲 numpy,版本號大於等於 1.15.0 的 python 包
conda search 'numpy>=1.15.0'

# 查找所有兼容 python3.7.2 的 python 包
conda search --full --name python=3.7.2 

通過 conda 向環境中添加新的 python 包

# 在當前 python 環境中添加版本號爲 11.3.3 的 mkl 包
conda insall mkl=11.3.3

# 向 py3_env_for_test 環境中,添加版本號爲 11.3.3 的 mkl 包
conda install --name py3_env_for_test mkl=11.3.3

通過 pip 向環境中添加新的 python 包

# 通過 pip,可以安裝那些無法通過 conda 安裝的 python 包
# 通過 pip 安裝包前,需要先切換到需要安裝 python 包的 python 環境
# 例:通過 pip,安裝 numpy 包
pip install numpy

刪除指定環境中的指定 python 包

# 刪除當前環境中的 mkl 包
conda remove mkl

# 刪除 py3_env_for_test 環境中的 mkl 包
conda remove --name py3_env_for_test mkl

溫馨提示

  • conda 把不同版本的 python 作爲包進行管理,因此
    • conda remove --name py3_env_for_test mkl 刪除的是環境下的 mkl 包
    • conda remove --name py3_env_for_test --all 刪除的是環境
  • conda 工具的各個參數,存在簡寫模式
    • --name 的簡寫爲 -n,例
    # 等價的兩條命令
    conda list --name py3_env_for_test 
    conda list -n py3_env_for_test
    
    • --envs 的簡寫爲 -e
    • 以此類推
  • 善用 help,例
conda -h
conda list -h
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章