0%

[Python] 使用 conda 建立及管理虛擬環境

Conda

前言

之前在開發 Python 程式時,我都是使用 pip 來做套件管理,使用 virtualenv 來建立虛擬環境,後來發現 Conda 這個工具,Conda 是一個開源的套件及虛擬環境管理工具,支援多種程式語言(Python, R…等),這邊來記錄一下它的使用方式,以下的指令是以 Windows 環境為主,Linux 或 MacOS 的指令可以參考官方文件。

安裝

Conda 的安裝方式可以透過安裝 Anaconda 或是 Miniconda 來取得,Anaconda 是一個比較完整的套件,它同時也會安裝一些常用的套件,例如:Pandas、Matplotlib、SciPy…等,如果有足夠的硬碟空間,可以直接安裝 Anaconda,如果硬碟空間不夠或是不想要安裝太多不一定會用到的套件,就可以安裝 Miniconda 就好。

基本指令

虛擬環境操作

建立虛擬環境

  • -n, --name: 設定環境名稱
  • -f, --file: 由檔案建立虛擬環境
1
2
3
4
5
6
7
8
9
10
$ conda create -n <env_name> <package>

# 安裝包含 Anaconda 發行版的套件
$ conda create -n <env_name> anaconda

# 指定 Python 版本
$ conda create -n <env_name> python=3.8

# 由檔案建立虛擬環境
$ conda env create -f <dependency.yml>

顯示虛擬環境列表

  • -e, --envs: 列出已建立的環境
1
2
3
4
$ conda info -e

# 也可以使用以下指令
$ conda env list

切換至虛擬環境

1
$ conda activate <env_name>

離開虛擬環境

1
$ conda deactivate

刪除虛擬環境

1
2
3
4
$ conda remove -n <env_name> --all

# 也可以使用以下指令
$ conda env remove -n <env_name>

套件管理

安裝套件

1
$ conda install <package>
  • -c: channel, 如果找不到,可以到 conda-forge 搜尋:
1
$ conda install -c conda-forge <package>

或是也可以直接在設定中增加 channel:

  • --add, --prepend: 增加在 channel list 最上方,priority 最高
  • --append: 增加在 channel list 最下方,priority 最低
1
$ conda config --append channels conda-forge

查詢套件

1
conda search <package>

顯示套件列表

  • -n: 查看指定環境的套件列表
1
$ conda list [-n <env_name>]

移除套件

  • -n: 刪除指定環境中的套件
1
2
3
4
$ conda remove <package>

# 刪除指定環境中的套件
$ conda remove -n <env_name> <package>

更新套件

1
$ conda update <package>

匯出環境

匯出已安裝套件

1
2
3
4
$ conda list -e > requirements.txt

# 可以使用此檔案建立新的環境
$ conda create -n <env_name> -f requirements.txt

匯出 environment.yml

1
2
3
4
$ conda env export -n <env_name> -f environment.yml

# 可以使用此檔案建立環境
$ conda env create -f environment.yml

Problems

CondaHTTPError HTTP 000

如果有遇到 CondaHTTPError HTTP 000 的 Error 時,有可能是防火牆阻擋安裝,也有可能是環境變數沒有設定好,必須要添加 C:\Users\<user>\anaconda3\Library\bin,添加之後通常就沒問題了!

Activate not work on Windows

如果建立好虛擬環境,但是無法 activate,需要先檢查系統的環境變數 Path 是否有以下內容:

  • C:\Users\<user>\anaconda3
  • C:\Users\<user>\anaconda3\Library\bin
  • C:\Users\<user>\anaconda3\Scripts

確定都設定好之後,要再執行 conda init 指令,接著就可以使用 conda activate <env_name> 切換至虛擬環境。

參考