编程开发

【python】在项目中使用requirements.txt管理依赖,使用virtualenv虚拟环境隔离依赖

开发python项目经常遇到的问题就是自己本机代码没有问题,而在其他机器上使用就有各种问题,归根到底有两方面因素: python版本不一致 依赖库不一致

一、集中管理项目依赖库

开发python项目经常遇到的问题就是自己本机代码没有问题,而在其他机器上使用就有各种问题,归根到底有两方面因素:

  • python版本不一致
  • 依赖库不一致

前者只要确保安装的python版本一致即可,后者的话需要用到requirements.txt管理依赖,这里我们使用pipreqs工具生成依赖文件

# 更新pip
pip install pip --upgrade

# 安装pipreqs
pip install pipreqs

转到py文件项目目录,在该项目下生成requirements.txt

pipreqs ./ --encoding=utf8

在这里插入图片描述
这样就可以看到列出项目中用到的所有依赖库
在这里插入图片描述
别人如果要使用你的项目,只需clone源码然后安装所有依赖即可

# 更新pip
pip install pip --upgrade

# 安装项目依赖
pip install -r requirements.txt

二、 隔离项目环境

另外一个问题是,默认pip安装的库会覆盖之前版本,如果有多个项目使用不同版本的依赖库,该如何解决呢?这里的思路是一个项目一个依赖库,需要用到的工具为virtualenv,可以为每个项目建立一个单独的环境

pip install virtualenv

例如刚刚的python项目,我想为这个项目建立一个隔离环境

virtualenv py_env

py_env这个目录下包含python解释器,依赖库等等和正常环境一致的配置
在这里插入图片描述
如果要进入虚拟环境,需要在命令行中执行activate.bat批处理脚本

\xx\xx\xx\active.bat

在这里插入图片描述
退出虚拟则执行deavtivate.bat脚本

\xx\xx\xx\deactive.bat

但是每回进入和退出虚拟环境实在是太麻烦😑,而且虚拟环境一多则不容易管理,作为高效程序员必须要简洁!我们使用virtualenvwrapper工具管理虚拟环境

pip install virtualenvwrapper

新建虚拟环境

mkvirtualenv  env_2
mkvirtualenv env_3

这样就会在个人的ENV目录下生成 env_2env_3两个虚拟环境目录
在这里插入图片描述
如果想更换默认目录,可以新建一个WORKON_HOME系统变量,指定目录
在这里插入图片描述
查看所有虚拟环境

workon

在这里插入图片描述
进入某个虚拟环境

workon py_env_2

退出某个虚拟环境

deactivate

移除虚拟环境

rmvirtualenv py_env_2

这样管理虚拟环境也方便很多,事倍功半啊😎