###### tags: `Conda` # Conda 用法備忘 ### 查看虛擬環境列表 `conda env list` ### 建立虛擬環境 PS. myenv是環境名稱、python=3.5是環境內要用的python版本 `conda create --name myenv python=3.5` or `conda create -n myenv python=3.5` ### 啟動虛擬環境 `conda activate myenv` ### 在虛擬環境處理各種套件 PS. numpy 是套件名稱要代換 * **安裝指定版本套件** `conda install numpy==X.X.X` * **刪除虛擬機環境中的套件** `conda uninstall numpy` * **查詢套件** `conda search numpy` * **列出虛擬環境下以安裝的所有套件** `conda list` * **列出虛擬環境下含有指定keyword下的所有套件** `conda list | grep keyword` * **使用conda安裝requirement.txt (找不到安裝包就略過)** `while read requirement; do conda install --yes $requirement; done < requirements.txt` * **使用conda安裝requirement.txt (找不到安裝包就用pip安裝)** `while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt` * **輸出conda環境為requirement.txt** `pip freeze > requirements.txt` * **輸出conda環境為environment.yml** `conda env export | grep -v "^prefix: " > environment.yml` * **備註** * torch要打pytorch ### 複製虛擬環境 `conda create --name new_name --clone old_name` ### 離開虛擬環境 `conda deactivate` ### 刪除虛擬環境 `conda env remove --name myenv --all` ### 修改虛擬環境名稱 要先複製環境再刪掉舊的環境 `conda create --name NEW_NAME --clone OLD_NAME` `conda remove --name OLD_NAME --all` ### 用指令下載dropbox資料 `wget --max-redirect=20 -O download.zip https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa` ### 跟別人不一樣的安裝指令 有些套件預設channel裡面沒有,有些套件版本有缺,要切換去不同的channel安裝 常用的channel是 anaconda和conda-forge #### cPython `conda install -c anaconda cython` #### pillow `conda install -c anaconda pillow` #### transformers(Bert) `conda install -c conda-forge transformers` --- ### Jupyter kernel 相關 #### List Jupyter kernel `jupyter kernelspec list` #### Delete Jupyter kernel `jupyter kernelspec uninstall unwanted-kernel` ### Add your Conda environment to your jupyter notebook #### 建立一個環境 #### 在那個環境install ipykernel `conda install -c anaconda ipykernel` `python -m ipykernel install --user --name=firstEnv` --- ### 一些遇到的 Error 解決辦法 * **UnsatisfiableError: The following specifications were found** * 套件之間版本衝突,或是強制指定的版本不匹配,不要強制指定版本 * **安裝tensorboardX** cannot import name 'SummaryWriter' * 先安裝torchvision再裝tensorboardx `conda install torchvision -c pytorch` `conda install -c conda-forge/label/cf201901 tensorboardx` * [**Intel MKL FATAL ERROR:**](https://blog.csdn.net/EricaApple/article/details/53634487) * 這是anaconda的bug,用多行程就容易發生,先嘗試更新numpy * 還是不行就去找log訊息裡是哪個library沒有link到 * `libmkl_avx.so,libmkl_def.so`這兩個沒link到就去`vim ~/.bashrc`裡新增 `export LD_LIBRARY_PATH=anaconda路徑/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH` * `libmkl_rt.so`沒link到就新增 `export LD_PRELOAD=anaconda路徑/lib/libmkl_rt.so` * **the GPU program failed to execute at /opt/conda/conda-bld/pytorch_1533672544752/work/aten/src/THC/THCBlas.cu:249** * 可能是pytorch的指向錯誤,把pytorch重新安裝並確認是否有跟其他套件衝突就好惹 * [**RuntimeError: cuda runtime error (10) : invalid device ordinal at torch/csrc/cuda/Module.cpp:32**](https://github.com/allenai/allennlp/issues/1090) * CUDA device指定錯誤 * [**TypeError: _load_from_state_dict() takes 7 positional arguments but 8 were given**](https://github.com/huggingface/transformers/issues/122) * pytorch版本問題 在0.4.0 _load_from_state_dict()僅接受7個參數,但在0.4.1版以後接受8個 * [**ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject**](https://stackoverflow.com/questions/66060487/valueerror-numpy-ndarray-size-changed-may-indicate-binary-incompatibility-exp) * numpy版本更新到至少1.20.1以上 * [**CUDA error: no kernel image is available for execution on the device**](https://heary.cn/posts/PyTorch%E6%8A%A5CUDA-error-no-kernel-image-is-available-for-execution-on-the-device%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/) * pytorch or python版本太高or太低 * **使用pytorch儲存模型時出現TypeError: can't pickle _thread.lock objects** * 儲存的dict有錯