python requirements文件生成与使用

python requirements文件生成与使用

在写python程序的时候,我们经常的会下载很多的模块,当我们编写完成后,准备在其他设备上部署的时候,那么新设备上需要安装我当前环境下的所有包,如果一个个找显然是挖坑埋自己,于是乎我们可以通过pip生成一个requirements.txt的文件,在新环境中通过读取这个文件中的模块名称进行安装环境。

安装 pipreqs

pip install pipreqs

导出项目所需依赖:

#在项目的根目录下使用    
   执行: pipreqs ./#如果是Windows系统,会报编码错误 (UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 24: illegal multibyte sequence)  
#使用时,指定编码格式:
    pipreqs ./ --encoding=utf8

导出python安装的所有依赖:

生成 requirementts.txt:    
执行 pip freeze > requirements.txt
#安装:
  pip install -r requriements.txt

生成requirements.txt

(venv) [root@9aa3b82f4987 my_test]# pip freeze > requirements.txt
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

查看生成requirements.txt的内容

(venv) [root@9aa3b82f4987 my_test]# cat requirements.txt
alembic==0.9.9
blinker==1.4
click==6.7
dominate==2.3.1
Flask==0.12.2
Flask-Bootstrap==3.3.7.1
Flask-Mail==0.9.1
Flask-Migrate==2.1.1
Flask-Moment==0.6.0
Flask-Script==2.0.6
Flask-SQLAlchemy==2.3.2
itsdangerous==0.24
Jinja2==2.10
Mako==1.0.7
MarkupSafe==1.0
mysql==0.0.1
MySQL-python==1.2.5
python-dateutil==2.7.2
python-editor==1.0.3
six==1.11.0
SQLAlchemy==1.2.4
visitor==0.1.3
Werkzeug==0.14.1

在新环境中通过此文件可以直接安装环境

(venv) [root@9aa3b82f4987 my_test2]# cp ../my_test/requirements.txt ./
#拷贝一下my_test环境中的requirements.txt

(venv) [root@9aa3b82f4987 my_test2]# ls
requirements.txt  venv

(venv) [root@9aa3b82f4987 my_test2]# pip install -r requirements.txt
#开始安装
Collecting alembic==0.9.9 (from -r requirements.txt (line 1))
Collecting blinker==1.4 (from -r requirements.txt (line 2))
Collecting click==6.7 (from -r requirements.txt (line 3))
  Using cached click-6.7-py2.py3-none-any.whl
Collecting dominate==2.3.1 (from -r requirements.txt (line 4))
Collecting Flask==0.12.2 (from -r requirements.txt (line 5))
  Using cached Flask-0.12.2-py2.py3-none-any.whl
   ...

安装完成后,新环境中就可以运行你的代码咯