乐趣区

从javascript到python(二):virtualenv

前序文章《从 javascript 到 python(一): 基本环境搭建》中提到了 pip 和 pip3 安装 Python 的库,但是问题来了,安装之后的库都会放在如:python2.7/site-packages, 这也意味着可能出现同一个库多个版本同时存在的问题。npm 中的包管理工具是怎么解决的?
npm 全局安装的方式
npm install -g XXX // 表示包全局安装
根据 package.json 来安装
npm install
第一种方法安装的包放在全局的 node_moudle 中,而后一种方法则把包安装到每一个项目下面的 node_moudle 中。后面一种安装方法我们可以理解为每一个项目一个单独的运行环境。
virtualenv 实际上也是基于此原理来解决这个问题。具体的说明可以参考廖雪峰的 Python3 教程,具体的安装和使用方法,廖雪峰的文档中已经写得很清楚了,笔者就不赘述了。建立完成后会有一个 venv 文件夹,
其文件夹目录结构如下

我们看到存在大量的软链接实际指向到全局的 pip 库的安装目录。
requirements.txt 文件建立
实际上 python 可以建立如 npm 中的 package.json 文件。在项目目录下使用如下指令 pip3 freeze > requirements.txt 即可导出当前环境下的库文件

使用 pip3 install -r requirements.txt 可以根据 requirements.txt 完成库的安装
可能的坑
在编写程序过程中,经常会出现找不到包的情况,这种情况一般是没有把 paython 的路径配置到虚拟环境中, 这需要如下图修改 VSCode 中的用户设置,配置成功后会在 VS Code 下方出现【venv】的字样

总结
文章中写了很多原理的对比理解,建议读者从原理的角度去理解相关指令,而不是靠强行记忆。技术发展这么快,你是记不住的。

退出移动版