首页 > 技术文章 > conda、pip使用Tips

grainrain 2020-06-23 18:38 原文

 

  环境都从base开始激活,不要套娃似的一个接一个激活环境,各个环境间会相互影响。base中不要新装任何东西。

  安装完conda环境后,各个包建议用pip安装,更快。

 Anaconda

1.  安装anaconda后Terminal 出现(base) username@xxx: ~$

base环境不要做任何修改

conda config --set auto_activate_base false   # 更改配置
source .bashrc                    # 更新上面的修改
conda create -n env-name packages_to_install  # 创建新环境,package eg:python=3.8
conda remove -n env-name --all          # 删除虚拟环境

conda [de]activate [env-name]           # 激活之后才有效
conda env list
conda env remove -n env-name
conda update/install/remove packagename1[=version] [package2] ...
conda clean -a                    # 删除没用的包、缓存、tar包等,比较安全  ——参考博客
** 如果安装出问题,就clean一下,会将旧包的备份删掉,一般也能解决安装包时出的问题

   ** 如果环境出了很大问题,暂时没办法解决,可以回退,base环境回退方法如下:  ——参考博客

conda list --revisions    # 查看历史版本
conda install --rev 0     # 回退到版本0(效果不一定好)

   ** 如果要重新安装anaconda,要把之前的安装目录先删除,否则会影响后面的安装。

 

如果出现找不到想要版本的包,可以换源,下面是清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
# 北外源
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/peterjc123/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/

conda config --set show_channel_urls yes

 

** 目录含义

anaconda3/ 中,目录'pkgs'是下载、存放缓存,以及提取下载的conda包的地方,在构建新的虚拟环境时,如果pkgs目录下的包符合要求,可以优先链接到该目录下,避免重复的下载;anaconda一起携带的包也会放在这里。  ——参考博客

 

2. 安装pytorch

可以去torch官网看看命令,官网

默认源一般比较慢,去掉命令中的 -c pytorch 就可以用自己配置的源。

3. 安装sklearn,skimage,opencv-python,yaml

conda install scikit-learn
conda install scikit-image conda
install opencv
conda install pyyaml

 4. 问题:Warning: >10 possible package resolutions

原由:在base环境进行了修改和包安装,影响了其它环境

解决:卸掉base环境中新安装的包,去除修改

 

 

在虚拟环境中,conda安装的包在anaconda3/pkgs/目录下,相当于可以共用;而pip则安装在env_name/python x.y/site-packages/目录下

Pip

1. pip使用国内源

# 以 清华源 为例
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package       # 临时使用

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple    # 设为默认源

 

2. 重新安装pip

  由于一些操作导致pip损坏不能使用,可以重新安装  ——参考stackoverflow 或 简书(未验证)

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py     # 获取脚本
python get-pip.py --ignore-installed    # 重新安装

 

3. pip install matplotlib 出现错误 TypeError: string argument expected, got 'NoneType'

原因:未知,可能是安装前置依赖时出了问题

解决:用下面的命令,前置依赖手动安装——参考

pip install xxx --ignore-install pexpect

 

4. pip出现uninstall错误:Cannot uninstall'certifi'. It is a distutils installed project and thus we cannot accurately determine which files belong to...

  1)进入anaconda3/ 目录,执行下面的命令,找到相关文件后,删除不需要的就行了(如site-packages中的)。

find '.' -name "*certifi*.egg-info"          # 找到目录下的所有certifi相关的文件,有可能找不到

* 注意,不要直接用 参考博客 中的命令,那样会误删其它环境的certifi相关包,并损坏pip

   2)或者在安装命令中添加选项 --ignore-installed certifi 直接跳过该问题

pip install xxxx  --ignore-installed certifi

 

5. 删除 pip 缓存

  Windows下,删除 %LocalAppData%\pip\Cache 目录下的所有内容即可。

推荐阅读