绝顶之上

会当凌绝顶,一览众山小。

控制 Python 开发环境

发布日期:

之前写程序都是建立一个文件夹,随便起个名字 xxx_01 ,然后就开始写。但是只从接触 cargo 之后,我就逐渐开始对开发环境进行控制。写项目的时候,往往会用到其他人写的库,可能开发时用的库是最新版本,1 年后这些库可以发生了翻天覆地的变化。这时,如果这时盲目跟进最新版本,就需要反复查找资料来修补程序错误。如果使用当时开发的环境,就自然不会出现这些情况。

有人觉得用老版本的库很低级,这不禁让我联想到 aardio 作者 Jacen He 写的一篇文章中的一句话:“把时髦的技术挂在嘴上,不如把过时的技术放在心里” 1。这句话我非常认同,有的技术虽说过时,但是如果它依然可以快速有效的解决问题,接着用也没什么问题。

控制 Python 开发环境的思路

控制环境的基本思路无非就是指定自己开发时用到了什么,通过这种指定以确保在新的开发环境下可以让程序再现一致的结果。为了说明这一点,我将在这一小节描述一下我控制 Python 开发环境的思路。

1. 控制 Python 版本

在 Windows 上使用 Python,可以实现多个版本(包括 32 位和 64 位)共存。在安装 Python 时,注意勾选 Python Launcher2,使用 Python Launcher 就可以启动不同版本的 Python。例如,系统内安装了 32 位和 64 位版本的 Python 3.10.4,现在要启动 32 位版本的 Python 3.10,可以使用如下命令:

py -3.10-32

2. 启用虚拟环境

对于每个项目,都推荐使用独立的 Python 虚拟环境,启用 Python 虚拟环境的优点有很多3,自 Python 3.5,推荐使用 venv 模块来创建虚拟环境4。使用 venv 模块也很简单,例如现在在工作目录 project 下创建一个 32 位的 Python 3.10 虚拟环境,并将其放置在 .env 文件夹:

cd project
py -3.10-32 -m venv .env

使用 PowerShell 启用和关闭虚拟环境:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.\.env\Scripts\Activate.ps1
deactivate

注:由于 PowerShell 默认禁止运行脚本,可通过 Set-ExecutionPolicy 命令允许脚本运行5

使用 pip freeze 命令保存当前虚拟环境所用到的库:

pip freeze > requirements.txt

注:在新环境下使用 pip install requirements.txt 命令可以安装 requirements.txt 列表中的所有库。

3. 使用 Git 进行版本控制

在项目文件夹下,新建 .gitignore 文本文件,该文件用来指定在进行版本控制时忽略哪些文件或者文件夹,例如我不想对 .env__pycache__ 文件进行版本控制,可以在 .gitignore 文本文件中输入:

/.env
/__pycache__

关于 Git 的使用,限于篇幅和水平,本文不做过多描述,市面上有许多很好的教程可供参考。值得注意的是,现代编辑器大都对 Git 有很好的支持,例如,VS Code 可以在左栏菜单的第三项对 Git 进行图形化操作。

总结

控制 Python 开发环境方法有很多种,其 基本思路 还是非常简单的。本文所提供的方法虽然简单,但还是有些繁琐。使用 PyCharm 等现代化集成开发环境,可以很轻松的完成开发环境控制,这为开发提供了极大的便利。

参考文本