# Conda使用筆記
###### tags: `機器學習準備`
## 常用指令
* 更新Conda:`conda update conda`
* 建立環境:`conda create --name <env_name> python=<python_version>`
* 查看有甚麼環境:`conda env list`
* 環境啟動:`conda activate <env_name>`
* 環境關閉:`conda deactivate`
* 環境中安裝套件:
* 使用Conda:`conda install <package_name>`
* 使用Pip: `<conda_pip_source> pip install <package_name>`
* Ref.: https://stackoverflow.com/questions/41060382/using-pip-to-install-packages-to-anaconda-environment
* 輸出conda環境:`conda env export > environment.yml`
* 由enviroment.yml建立conda環境:`conda env create -f /path/to/environment.yml`
## 強烈推薦技巧:自行維護版本號
建議自行維護一份enviroment.yml,方便在git版控的時候能清楚自己版本號。步驟如下,以我設定的hazard環境而言:
1. 我知道我需要以下套件,所以先寫下來,並註記版本號。如果需要用pip的特別標示pip出來。建立enviroment.yml包含以下內容,hazard是我取的名字,你可以隨便改你喜歡的名字:
```
name: hazard
channels:
- anaconda
- pytorch
- conda-forge
- defaults
dependencies:
- ipython=8.5.0
- pip=22.2.2
- python=3.10.5
- cudatoolkit=11.6.0
- matplotlib=3.6.0
- numpy=1.23.3
- pytorch=1.12.1
- torchvision=0.13.1
- jupyter=1.0.0
- pandas=1.5.0
- scipy=1.9.1
- torchinfo=1.7.1
- pip:
- timm==0.6.11
```
2. 從前述檔案建立環境:`conda env create --file environment.yml --force`
* --file 後面為environment.yml的檔案路徑
* 建立後一樣用`conda activate hazard`就可以啟動
4. 我突然發現我還需要torchviz,所以將environment.yml更改如下:
```
name: hazard
channels:
- anaconda
- pytorch
- conda-forge
- defaults
dependencies:
- ipython=8.5.0
- pip=22.2.2
- python=3.10.5
- cudatoolkit=11.6.0
- matplotlib=3.6.0
- numpy=1.23.3
- pytorch=1.12.1
- torchvision=0.13.1
- jupyter=1.0.0
- pandas=1.5.0
- scipy=1.9.1
- torchinfo=1.7.1
- pip:
- timm==0.6.11
- torchviz==0.0.2
```
5. 安裝並更新我們的環境:
* 切換到你的環境,我的叫做hazard所以`conda activate hazard`
* `conda env update --file environment.yml --prune`就完成了!
* 不錯的環境版本維護介紹:https://carpentries-incubator.github.io/introduction-to-conda-for-data-scientists/04-sharing-environments/index.html
## Troubleshooting
* CondaHTTPError: HTTP None None for url ...
* 輸入`conda config --set ssl_verify no`
* Ref.: https://stackoverflow.com/questions/42563757/conda-update-condahttperror-http-none