python的虚拟环境管理工具venv使用方法介绍及与nodejs的包管理方式对比

一、nodejs 包管理方式

我们知道, nodejs的包管理工具npm可以安装项目所需要的包,安装方法及区别如下:

npm i module_name  -g    全局安装   

npm i module_name  -S    写入到 dependencies 对象  

npm i module_name  -D    写入到 devDependencies 对象  只在开发时候需要,上线则不需要

在项目的根目录,我们可按需执行三种安装方法,完成相关第三包的安装。

同时,安装的第三方包默认会保存在生成的node_modules文件夹中,安装的包的列表会默认保存在package.json文件中。

这样,我们可以在项目迁移过程中,很方便的使用npm install 然后安装所有package.json里面所列出的所有的包。

我们发现,nodejs的包管理工具,可以很方便地将包安装到我们需要的地方,而且会自动生成node_modules 及package.json 。

二、python 包管理方式

可惜的是,python 的pip包管理工具没有这么方便地实现类似nodejs包管理工具的功能,只能利用其它方式手动地生成包及包管理工具。

这里不推荐使用pipenv来管理python的包,推荐使用python3 自带的venv的方法来管理包。

生成py_modules(类似于nodejs的node_modules)文件步骤如下:

  python -m venv py_modules  // 安装py_modules ,这里存放安装的包

(windows) py_modules\Scripts\activate.bat // 执行启动本地包环境
(linux) source py_modules\bin\activate // 执行启动本地环境报
 这样我们就可以利用pip install  包名  ,来安装包到本地的py_modules中,而不是安装到全局

生成requirements.txt (类似于package.json)包列表文件方法如下:

pip freeze >requirements.txt   //将所有安装的包列出到requirements.txt 中

可以利用如下方式来安装requirements.txt 里面所有的python包 (类似于nodejs的npm install)

pip install -r requirements.txt
pip install --index-url https://pypi.douban.com/simple -r requirements.txt (国内下载包经常出错,建议使用豆瓣的源)

至此,我们将python的包管理方式,手动实现的和nodejs的包管理方式一致。