[Python] Python/Conda安装教程

近期准备重新摸一摸py,而py的版本、环境管理有点糟心,故需总结一下安装教程。

1 Anaconda : 专门为数据科学设计的Python发行版

1.1 简介

  • 官网
  • Anaconda

Anaconda:python的一种软件发行版。Anaconda发行版会预装很多pydata生态圈里的软件,而Miniconda是最小的conda安装环境, 一个干净的conda环境。

  • 软件发行版:在系统上提前编译和配置好的软件包集合, 装好了后就可以直接用。
  • 【结论】conda和Anaconda没有必然关系, 你可以不安装Anaconda的同时, 使用conda安装和管理软件。

2 Conda : 通用的软件包管理系统 + (多)环境管理系统

2.1 简介

  • 官网

  • conda

Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.

Conda 是一个开源的包管理系统,主要用于安装、管理和卸载各种开源软件包和环境。
它可以支持多种编程语言(如Python、R、Julia)和操作系统(Windows、Linux、macOS)。
Conda的核心功能包括包管理和环境管理,类似于pip工具,同时具备virtualenv、PVMShell(Python Version Manager)以及其他必要的基础库。
Conda可以独立于Anaconda使用,但通常与Anaconda结合使用,以便于管理Anaconda发行版的软件包和环境。1
  • pip是 Python 包管理工具
  • conda是一个开源的软件包管理系统环境管理系统
  • pipPython包进行管理; 而conda不仅能进行包管理,还能够创建隔离的环境,该环境可以包含不同版本的Python和或其中安装的软件包。
  • conda ≈ pip(python包管理) + virtualenv(虚拟环境) + 非python依赖包管理
conda install pip

pip install [包名] == [版本号]
conda install [包名] = [版本号]
  • pip 包管理器

  • anaconda jupyternoteboo

  • pytorch

2.2 安装 on Linux

  • 本章节摘自 :
  • conda分为anaconda和miniconda。anaconda是包含一些常用包的版本,miniconda则是精简版

可以根据自己的需要来安装相应的软件,一般安装使用miniconda

Step1 下载conda

可以根据conda的清华镜像源去进行下载

wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 清华的镜像源latest的版本的话就是说以后一直会更新最新的版本
wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

注:一定要加-c参数,这样的话就算网络出现问题也会在联网的时候继续下载(最好直接使用清华的镜像去下载,这样速度比较快

Step2 安装conda

使用bash去运行脚本,以sh结尾的文件,除了 bash 之外还可以使用 ./ 去运行

chmod 777 Miniconda3-latest-Linux-x86_64.sh         #刚下载好的安装包没有可执行权限,所以需要先给权限

bash Miniconda3-latest-Linux-x86_64.sh              #运行.sh 

因为博主是全新的没有安装任何软件的服务器,所以就直接一路yes下来

据网友说:好像没有看到说要将conda添加到环境配置里面 只是会问你是否接受许可条款和初始化conda我都选的yes

.bashrc文件里面有conda的路径

Step3 运行 conda

虽然安装好了,但是输入conda回车还是说找不到

所以需要运行一下conda的activate文件,首先需要确定activate文件是否有可执行权限,我的打开就是绿色的显示可以执行,如果是白色就使用chmod 777 activate去加上权限

cd miniconda3/bin       #转到miniconda的bin文件夹下

source activate             #运行
  • 运行完activate之后就可以看到进入到conda的环境里面

Step4 添加频道

conda在国内有很多镜像,在国内一般会选择添加清华的镜像

# 添加镜像
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.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  • 添加完镜像之后可以查看一下,然后把defaults删掉,如果有defaults存在的话每次安装软件的时候会去默认的镜像源里面找一遍,会增加不必要的时间成本。
conda config --set show_channel_urls yes            #显示已经安装的频道

conda config --get channels                             #查看安装的频道

vim ~/.condarc                                              #编辑conda的配置文件

Step5 创建独立环境

不能将需要用的软件或者其他要用的东西装在base环境中

创建一些独立的环境会比较方便我们做项目管理,不会有冗余,一个独立的小环境就像一间单独的小房间,彼此独立不会相互影响,这样就会可以方便我们管理不同依赖包的软件

建议: base环境中不要安装任何的包,保持干净,除非你知道这个包会对原生的环境造成什么样的影响

conda create -n rnaseq   #创建conda小环境 - -n 用来指定环境的名称
conda create -n database python=3.7.3    #指定环境中需要带的python的版本
 
conda activate rnaseq     # 启动小环境

conda deactivate           # 退出小环境

conda env list  / conda info --env    #查看共有多少个小环境

conda remove -n python --all     #删除conda小环境

Step6 软件安装

可以直接使用conda去安装一些我们需要用到的软件,比如我之后要搭建的blast

  • Q1: 搜索哪些软件可以用conda下载
  • 方法1:网站查询

https://bioconda.github.io/

  • 方法2:conda search XXX

注:有时候在服务器搜索会很慢

  • 方法3:关键词搜索
  • Q2: 指定安装软件的版本(以fastqc为例)
    在不指定版本的情况下,conda默认安装该软件的最新版,如果要安装旧的版本方法:
  • 先看看有哪些可以安装的版本 conda search fastqc
  • 安装指定版本的软件
conda install fastqc=0.11.7

添加-y参数跳过确认的步骤 conda install -y fastqc=0.11.7

  • Q3: 安装找不到软件的包
  • 确定一下conda是否能安装我们需要的软件
  • 确定名字是不是输入正确(尤其要注意)
  • 确定好我们要安装的包在conda中的名字

2.3 安装 on Windows

Step1 下载 conda

  • 下载地址:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

下载最新的windows版本

Step2 安装

安装过程如果没有选择添加环境变量(Path),那么需要手动添加一下环境变量(Path),例如你安装的路径是d:\program\miniconda,那么conda执行的实际路径就是:

D:\Program\miniconda3
D:\Program\miniconda3\Scripts
D:\Program\miniconda3\Library\bin

Step3 验证版本

安装之后通过cmd命令行查看conda info命令是否可以正常使用


命令执行结果

conda --version

conda -h

Step4 初始化conda和shell的交互

  • 第一次使用需要先conda init。

conda init 的作用是初始化conda和shell的交互。通过运行conda init命令,可以在当前的shell环境中设置一些环境相关的配置,例如自动加载conda环境等,以便在后续的命令行交互中更加便捷地使用conda命令。这对于经常需要在命令行中操作conda环境的人来说非常有用,因为它可以提高工作效率和减少出错的可能性。
否则,执行conda activate base之类的环境命令时,就报类似错误:CondaError: Run 'conda init' before 'conda activate'IMPORTANT : You may need to close and restart your shell after running "conda init"

# conda init
no change     D:\Program\miniconda3\Scripts\conda.exe
no change     D:\Program\miniconda3\Scripts\conda-env.exe
no change     D:\Program\miniconda3\Scripts\conda-script.py
no change     D:\Program\miniconda3\Scripts\conda-env-script.py
no change     D:\Program\miniconda3\condabin\conda.bat
no change     D:\Program\miniconda3\Library\bin\conda.bat
no change     D:\Program\miniconda3\condabin\_conda_activate.bat
no change     D:\Program\miniconda3\condabin\rename_tmp.bat
no change     D:\Program\miniconda3\condabin\conda_auto_activate.bat
no change     D:\Program\miniconda3\condabin\conda_hook.bat
no change     D:\Program\miniconda3\Scripts\activate.bat
no change     D:\Program\miniconda3\condabin\activate.bat
no change     D:\Program\miniconda3\condabin\deactivate.bat
modified      D:\Program\miniconda3\Scripts\activate
modified      D:\Program\miniconda3\Scripts\deactivate
modified      D:\Program\miniconda3\etc\profile.d\conda.sh
modified      D:\Program\miniconda3\etc\fish\conf.d\conda.fish
no change     D:\Program\miniconda3\shell\condabin\Conda.psm1
modified      D:\Program\miniconda3\shell\condabin\conda-hook.ps1
no change     D:\Program\miniconda3\Lib\site-packages\xontrib\conda.xsh
modified      D:\Program\miniconda3\etc\profile.d\conda.csh
modified      C:\Users\xxxx\Documents\WindowsPowerShell\profile.ps1
modified      HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

==> For changes to take effect, close and re-open your current shell. <==

  • 执行完conda init后,重启命令行程序,就可以正常使用miniconda了:
> conda info -e
# conda environments:
#
base                     D:\Program\miniconda3

  • 可能在vscode、powershell等软件中打开终端时会出现无法启动conda的情况,报错信息一般为“无法加载文件C:\Users{USER}\Documents\windowsPowerShell\profile.ps1…”,如下图:

解决方法是以管理员身份启动powershell,然后在其中执行 set-ExecutionPolicy RemoteSigned,并输入 Y,如图:

Step4 配置

  • Q1: 添加国内源 [可选步骤]
  • Windows 用户无法直接创建名为 .condarc 的文件,可先执行

conda config --set show_channel_urls yes (设置搜索时显示通道地址)

  • 生成该文件之后再修改。

生成的路径是用户目录:C:\Users\{USER}\.condarc

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
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/

此时的文件配置内容:

  • Q2: 安装 openssl
  • 在执行conda upgrade --all时,报SSLError,需要安装openssl

下载地址:(下载后直接安装就行)

openssl

现在执行conda upgrade --all就可以正常执行了

  • Q3: power shell下配置
    使用conda激活虚拟化环境时,会报错,解决办法如下:
    1)以管理员身份打开PowerShell
    2)执行conda install -n root -c pscondaenvs pscondaenvs
    3)执行Set-ExecutionPolicy RemoteSigned

2.4 使用

2.4.1 环境管理

  • 创建环境
# 创建指定名称的环境
conda create --name {envName} python=2.7
  --name : 也可缩写为 【-n】
  envName : 新创建的虚拟环境的名字,创建完,可装anaconda的目录下找到 envs/envName 目录
  python=2.7 : python的版本号。也可指定为【python=3.6】,若未指定,默认为是装anaconda时python的版本


# 创建一个新的conda环境,并安装指定的软件包
conda create --name {envName} {packageName}

# 若想要在创建环境的同时,安装python的一些包:
conda create -n {envName} python=3.6 numpy pandas

# 若想在别人虚拟环境的基础上,创建自己的环境:
conda create --name {envName} --clone {baseEnv}

# 根据指定路径创建虚拟环境
# conda create [-n 环境名称 | -p path] [--clone 环境名称] [-c channel_address] [PackageName]
# 示例 :
conda create --prefix=C:/ProgramData/Anaconda3/envs/pytorch python=3.8
  • -p,--prefix:除了根据名称创建环境以外,我们还可以根据地址来创建 conda 环境

  • 激活环境

  • windows : activate {envName}
windows用户环境变量中添加(改成自己的路径):
D:\Anaconda3
D:\Anaconda3\Scripts
D:\Anaconda3\Library\bin

linux/mac : source activate yourEnv

linux用户需要进入到anaconda/envs目录下激活需要的环境,或者通过命令source active /home/yourName/anaconda3/envs/yourEnv激活需要的环境;

上面激活的方式进入目录太复杂 or 命令太长了,可以通过设置全局变量或者用linux的别名alias设置。

第一种方式,将需要激活的路径下的bin文件添加到全局环境变量中如将/home/yourName/anaconda3/envs/yourEnv/bin添加到~/.bash_profile中。
第二种方式,通过vim ~/.bash_profile,向里面添加alias activeEnv='source activate /home/yourName/anaconda3/envs/yourEnv',source ~/.bash_profile之后可以直接在命令行输入activeEnv激活相应环境

建议第二种,并建议看下linux的alias,非常好用
  • 查看环境
# 查看所有的环境
conda env list

# 查看conda中已有的python环境
conda info -e
或 conda info --env

# 查看活跃的环境 | 输出中带有【*】号的的就是当前所处的环境
conda info --envs
  • 退出当前环境
conda deactivate
  • 删除指定环境
conda env remove --name {envName}

2.4.2 软件源管理(channel)

  • 显示镜像源
conda config --show channels

  • 添加新镜像源
conda config --add channels [urls…]
  • 删除镜像源
conda config --remove-key channels 删除所有的镜像源,恢复到默认
conda config --remove channels [urls] 删除指定的镜像源
  • 清除索引缓存

清除索引缓存,保证用的是镜像站提供的索引

conda clean -i

2.4.3 软件管理

  • 查看conda中已安装的软件
# 查看当前环境下安装的包和版本 / 查看当前环境下用conda安装的软件
conda list

# 查看符合正则表达式的软件
conda list fast*   

# 查看指定环境下用conda安装的软件
conda list -n base 
conda list -n base
  • 搜索软件包
# 搜索包含特定软件包的 conda 仓库 , 将会列出所有与 pandas 相关的软件包
conda search pandas
  • 安装软件
# 安装指定的软件包
conda install {package_name}

# 安装指定源的软件包
conda install -c urls lib_name

# 在指定位置创建安装包
## 格式:
conda install [-n 环境名称 | -p path] [-c channel_address] [PackageName]
## -n, --name:安装PackageName包的环境名称。
## -p:也可以不指定环境名称,指定环境的绝对路径。
## -c, --channel:频道地址,一般不指定的话默认即可。
### 在指定位置创建环境pip install 包名==版本号 --target=路径 
### -i 后面加的是镜像网站
pip install chinesecalendar==1.8.1 --target=D:\bin.x64\Lib\site-packages -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install chinesecalendar --target=D:\bin.x64\Lib\site-packages -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install chinesecalendar==1.8.1 --t=D:\bin.x64\Lib\site-packages -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 删除软件
conda remove fastqc   # 删除该环境中的软件

conda remove -n rnaseq fastqc   # 删除指定环境下的软件
  • 升级软件
conda update fastqc  # 升级指定的软件

conda update conda    # 升级conda本身

conda update package_name: 更新已安装的软件包。

2.4.4 conda管理

# 本身更新到最新可用版本
conda update conda将conda

# 会卸载旧版本的conda,并安装新版本的conda。在遇到conda自身的问题,或者需要切换到一个全新的conda版本时,才推荐使用conda upgrade conda。
conda upgrade conda
  • 小tips
  • conda可以一次安装多个软件包
  • 有时候只要软件比如说我们的conda不影响我们的使用就不需要去管
  • 指定下载该软件的旧版本就可以完成该软件的降级

2.4.5 软件使用

  • 当前环境下使用pip
pip install matplotlib
pip list
pip ...
...

3 Python的原始安装方式

Y 小结

3.1 Anaconda 与 Conda

  • Conda是一个通用的包管理系统,而Anaconda是一个专门为数据科学设计的发行版。

两者可以相互配合使用,但Conda也可以单独使用。

X 参考文献

  • conda
posted @ 2023-03-30 13:56  千千寰宇  阅读(237)  评论(0编辑  收藏  举报