本文已参与「新人创造礼」活动,一同开启创造之路。

1 Conda

1.1 conda 常用指令

# 创立虚拟环境 eg. conda create -n env_name pandas
conda create -n [env_name] [package_name list]
# 指定 python 版别
conda create -n [env_name] python=3.8
# 激活环境
conda activate [env_name]
# 退出环境
conda deactivate
# 删去虚拟环境
conda env remove -n [env_name]
# 显示一切虚拟环境
conda env list
conda info -e
# 重置环境
conda list --revisions # 检查前史,按需挑选 `REV_NUM` 数值。一般为1或之后
conda install --revision REV_NUM # 稍等片刻,即可重置
# 装置包
conda install [package_name]
# 装置多个包
conda install numpy pandas scipy
# 装置固定版别的包
conda install numpy=1.10
# 移除一个包
conda remove [package_name]
# 检查一切包
conda list
# 晋级全部库
conda upgrade --all
# 晋级一个包
conda update [package_name]
# 检查装备信息
conda config --show

1.2 Linux 下装置 Anaconda

  1. 输入 uname -a 检查 Linux 体系是 32位 or 64位

  2. 在 mirrors.tuna.tsinghua.edu.cn/anaconda/ar… 找到需要的版别下载装置

  3. wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
    bash Anaconda3-5.3.1-Linux-x86_64.sh
    
  4. 一路回车 + ‘Yes’ 就行,最后会问你是否装置 VS Code,不需要 ‘no’ 就行

  5. 这儿需要修正 /etc/profile

    vi /etc/profile
    

    然后输入i进入编辑模式。

    按向下方向键拉倒最后,输入

    export PATH=$PATH:/root/anaconda3/bin
    

    接着按下esc退出键,输入:wq,按下回车,即可保存

  6. # 改写环境变量
    source /etc/profile
    
  7. 重启终端,测验输入 python3

    Python 虚拟环境管理总结

1.3 国内镜像源

清华

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
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.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/

装备镜像源

conda config --set show_channel_urls yes
# 删去
conda config --remove-key $channels
# 检查当前镜像列表
conda config --show-sources
# 删去镜像源
conda config --remove channels {channel}

1.4 Anaconda 装备虚拟环境

导出/导入 Anconda python 的环境到 requirements.txt

# 导出
conda list -e > requirements.txt
# 导入
conda install --yes --file requirements.txt # 一遇到装置不上就全体中止不会持续下面的包装置
FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f" # 能处理上面出现的不履行后续包的问题

导出 Anconda python 的环境到 environment.yml

# 进入方针环境
activate env_1
# 导出 environment.yml 文件
conda env export | grep -v "^prefix: " > environment.yml

上面指令导出时经过 grep 删去了 “prefix:“ ,但是实际如同经过文件创立的 Anaconda python 环境,prefix 选项如同是不起作用的。

导入 environment.yml 创立 Anaconda python 环境

conda env create -f environment.yml

上面指令会装置在 conda 默认的环境途径。如果要指定其它装置途径,运用 -p 选项

conda env create -f environment.yml -p /home/user/anaconda3/envs/env_name

Anaconda 桌面运用导入环境装备文件

  1. 这儿直接打开 Anaconda,

  2. 点击数字1处 “Import” 按钮弹窗

  3. 点数字2出找到方才的 yml 文件,这时可以修正自己想要的 Name

  4. 点击数字3处 “Import” 即可

  5. 等待主动装置环境

Python 虚拟环境管理总结

离线装置环境包

conda install --offline ../anaconda_offline_package/pytorch-cpu-1.1.0-py3.7_cpu_0.tar.bz2

1.5 FAQ

1) Bug: 运用指令行时先激活

conda 未激活时(如出现错误 HTTP 000)

在指令行输入:

conda activate

2) Error: No module named ‘conda’

报错信息:

from conda.cli import main ModuleNotFoundError:
		No module named 'conda'

要求:以前的装置包要有,然后 update 一下

指令:bash Anaconda3-5.2.0-Linux-x86_64.sh -u

一切环境都在,一切康复正常

参阅文章:www.geek-share.com/detail/2727…

3) Error: -bash: /root/anaconda3/bin/activate: Permission denied

source activate env_1

4) 重命名环境

conda 其实没有重命名指令,完成重命名是经过 clone 完成的,分两步: 1、先 clone 一份 new_name 的环境 2、删去 old_name 的环境

如,将 nlp 重命名成 tf2

conda create -n tf2 --clone nlp

删去原环境

conda remove -n nlp --all

2 Python pip

2.1 虚拟环境管理

装置虚拟环境

$ pip3 install virtualenv

创立虚拟环境

# (在当前途径提示符下履行:virtualenv 虚拟环境名)
$ virtualenv lbh
created virtual environment CPython3.5.2.final.0-64 in 88ms
  creator CPython3Posix(dest=/home/liubihao/lbh, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/home/liubihao/.local/share/virtualenv/seed-app-data/v1.0.1)
  activators FishActivator,BashActivator,CShellActivator,PythonActivator,XonshActivator,PowerShellActivator
liubh@ubuntu:~$ source lbh/bin/activate
$ virtualenv --no-site-packages [虚拟环境名] #(中心的--no-site-packages 为参数,表示不包括体系大局的Python装置包,这样会更令环境更干净)
$ virtualenv --no-site-packages --python=python3.6 [虚拟环境名] #(--python=3.6 为指定版别号)

激活虚拟环境 (运转 Scripts 文件夹下的 activate.bat 激活虚拟环境)

$ source lbh/bin/activate
(lbh) $
# 提示符前面的 (lbh) 便是虚拟环境标识

退出虚拟环境 (运转 Scripts 文件夹下的 deactivate.bat 退出虚拟环境)

$ deactivate

删去虚拟环境

# windows 简略粗暴, 直接删去创立时生成的 myenv 的目录就好了
# linux
rm -r lbh

2.2 pip 导出/导入 requirements.txt

导出

$ pip freeze > requirements.txt

导入

$ pip install -r requirements.txt

2.3 Linux 运用 virtualenv 更换镜像源

先新建虚拟环境再换源,不然会报错

# lbh 是虚拟环境(文件夹)的称号
$ virtualenv -p /usr/bin/python3.6 lbh

换清华源

$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

每次进入自己用户主动进入环境

# 在 /home/liubh/ 中的 ./bashrc 文件最后添加一行
$ source ~/lbh/bin/activate