Python_requirements安装笔记

[TOC]

安装requirements

简述

搭建Python工程前的第一步,是安装确保环境的所有依赖包;
通常约定将依赖包信息放在工程根目录的requirement.txt文件中;
其它开发者搭建工程时,可以直接使用pip或者conda对requirement.txt中的依赖包进行安装;

PIP

1. 安装依赖包

1
2
3
4
# 不指定版本
pip install -y install zlib xz
# 指定版本
pip install -y install zlib==1.2.13 xz==5.2.6

2. 安装依赖文件

手动一个一个安装太麻烦,通常我们直接安装整个requirement.txt:

1
pip install -r requirement.txt

3. 遗留问题

pip安装包时,可能会出现缺少当前包对应的依赖包,Anaconda为通用型安装包提供了先安装自身依赖包,再安装当前包;

解决了大多数python三方库安装的依赖问题;

所以我们下面看看Anaconda对于依赖包安装的方式。

Conda

1. 安装Anaconda

如果您第一次接触到Anaconda或者Conda命令,请移步 Python | Anaconda | 安装与初识.

2. 更新Conda

1
conda update -n base -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda -y

3. 创建虚拟环境

1
2
3
4
5
############################################################
# conda create -n [env_name] python=[version] [packages] -y
# -n == --name; -y == --yes
############################################################
conda create -n py353 python=3.5.3 pip -y

4. 激活虚拟环境

1
2
3
4
5
6
7
8
9
10
11
############################################################
# active command:
# conda activate [env_name]
############################################################
conda activate py353

############################################################
# inactive command:
# conda deactivate
############################################################
conda deactivate

5. 安装依赖包

1
2
3
4
5
6
7
# conda instlal [packages] -y

# 指定包版本
conda install zlib==1.2.13 xz==5.2.6

# 不指包定版本(默认安装当前Python版本支持的最新依赖包)
conda install zlib xz

6. 安装依赖包文件

手动一个一个安装太麻烦,通常我们直接安装整个requirement.txt:

1
while read package_line; do conda install --yes $package_line; done < requirement.txt

有时候会出现conda库中没有对应的安装包,但是用pip库中却有,这时候就会导致当前包安装失败;

我们将其设置成conda找不到包时用pip查询并安装:

1
while read requirement; do conda install --yes $requeirement || pip install $requirement; done < requirements.txt

再添加点注释:

1
while read requirement; do echo "Start to $requirement;" && (conda install --yes $requeirement || pip install $requirement) && echo "End for $requirement;\n\n↓↓↓↓↓↓↓"; done < /Users/kt/Works/VSCodeProjects/OdooProjects/Odoo12/odoo/requirements1.txt

最后

安装包的依赖问题一直是困扰广大开发者的难点之一,使用conda和pip结合的方式,能最大限度上的避免开发人员对于依赖问题的痛苦。