讲讲软件工程中写代码之外的知识。开发中我们往往遇到这些问题:
1、一个项目写了不少代码。使用一些第三方包或者模块,对于这个项目来说已经能很好的工作了, 但是后来这些包或模板有了新版,改动较大,一旦升级,之前的很多代码要改,很痛苦。但是咱们也不能永远用老版本的,新开的项目还是想尝尝鲜,又或工作之外自己想先熟悉新技术。默认情况下,一个系统中只有一份第三方包或模块,无法做到。所以我们希望自己的电脑中能同时共存多个版本的模块或包
2、自己写的项目源代码转移到别的机器上或者分享给别人,又或者从别人拿到项目,如何能快速重建开发环境呢, 项目用了哪些第三方包,什么版本。 如果这些搞不定,那么代码就跑不起来。 从github上下载的别人代码,是不包含第三方包的,有些人又不写文档,就算从代码报错中能找到缺少的第三方包或模块,也很难知道确切的版本,自己装的版本万一不合适又不行,有些代码中的模块名和在pip仓库中的名字也不一定相同,遇到自己不熟悉的pip install 也白搭,总之麻烦一大堆。
What 什么能解决我们的问题 virtualenv 和 pip
java 中有maven 和 pom.xml ,android 有 gradle 和 build.gradle , node.js 有 npm 和 package.json。 pom.xml、 build.gradle、package.json都是记录依赖包及其版本的配置文件。
python 中解决第 1 个问题,就引出了 virtualenv 虚拟环境, 解决第 2 个问题,就需要pip 和 virtualenv 配合使用。
pip 是管理第三方包的,默认情况下,是装在全局系统里的,所有项目都共用同一个版本的第三方包
有了 virtualenv 每个项目都能有自己独立第三方包,隔离了。一个项目用 v1.0 另一个项目能用 v2.0
How 如何使用 如何使用 pip 常用功能
我使用的是windows 10 和 从python官网下载的 python 3.6.3 exe 安装包,别的系统和版本可能会遇到不同的问题。这个版本安装完成后,已经带上了pip。
按 ❖ + R 然后输入cmd 进入命令行,输入 pip 将会显示pip 的用法, 如果出错,可能没有装上pip , 参考 如何安装pip
正常情况下会显示如下内容(我这里只贴出部分)
Usage: pip <command> [options] Commands: install Install packages. download Download packages. uninstall Uninstall packages. freeze Output installed packages in requirements format. list List installed packages. show Show information about installed packages. check Verify installed packages have compatible dependencies. search Search PyPI for packages. wheel Build wheels from your requirements. hash Compute hashes of package archives. completion A helper command used for command completion. help Show help for commands.