控制 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 等现代化集成开发环境,可以很轻松的完成开发环境控制,这为开发提供了极大的便利。
参考文本
重要的不是你在用什么,重要的是你能做什么 2022-04-28
PEP 397 – Python launcher for Windows 2011-03-15
PEP 405 – Python Virtual Environments 2011-07-13
venv --- 创建虚拟环境 2022-06-06
关于执行策略 - PowerShell | Microsoft Docs 2022-03-26