Python 入门:用虚拟环境与 pip 在十分钟内搭一个可复现的开发环境
很多 Python 新手都会遇到同一个问题:在自己的电脑上能跑的代码,换一台电脑或者交给同事就报错,原因往往不是代码写错了,而是依赖环境不一致。解决办法并不复杂:给每个项目单独建一个虚拟环境,再用 pip 把依赖固定下来。这样做的好处是,不同项目的包版本互不干扰,重装环境时也有据可查。
第一步,先确认 Python 版本。打开终端执行 python3 --version,能看到版本号就说明解释器可用。接着在项目目录里创建虚拟环境,命令是 python3 -m venv .venv。这里的 .venv 只是一个目录名,习惯上用它表示这是一个不应该提交到代码仓库的本地目录。创建完成后需要激活它:在 Linux 或 macOS 上执行 source .venv/bin/activate,在 Windows 上执行 .venv\Scripts\activate。激活成功后,命令行提示符前面会出现 (.venv) 字样,这就是判断环境是否生效最直观的办法。
第二步,用 pip 安装项目需要的包。例如 pip install requests,这条命令只会把包安装到当前虚拟环境里,不会污染系统 Python。安装完成后,马上执行 pip freeze > requirements.txt,把当前环境里所有包的名称和精确版本写进文件。这个文件就是环境的快照,别人拿到项目后,只需要创建并激活自己的虚拟环境,再执行 pip install -r requirements.txt,就能得到一组基本一致的依赖。
第三步,把规则固定下来。新建一个名为 .gitignore 的文件,写入 .venv/,这样虚拟环境目录就不会被误提交。提交到仓库的应该是代码、配置文件和 requirements.txt,而不是动辄几百兆的虚拟环境本身。如果项目里有敏感信息,例如接口密钥,不要写进代码或 requirements.txt,应该用环境变量传入,本地调试时可以放在不提交的 .env 文件里。
日常使用中还有几个容易踩的坑。第一个坑是忘记激活环境:提示符前面没有 (.venv),pip 安装的包就会装到别处,运行程序时又报找不到模块,遇到这种情况先检查激活状态,再重新安装。第二个坑是 requirements.txt 长期不更新:装了新包却没有重新执行 pip freeze,别人按旧文件重建环境时就会缺包。第三个坑是把系统包和项目包混用:直接用系统 Python 装包,时间一长就很难说清某个项目到底依赖哪些版本。
如果环境已经乱了,也不必慌。删掉 .venv 目录,重新创建并激活,再按 requirements.txt 重装一次,往往比逐个排查更快。这个过程也正好验证了你的依赖清单是否完整:如果重装后程序跑不起来,缺失的包就是清单里漏掉的那一项,补上并重新生成 requirements.txt 即可。
总结一下可复现环境的最小流程:一个项目对应一个虚拟环境,激活后再安装依赖,及时用 pip freeze 固化版本,虚拟环境目录不进仓库。把这四件事做成习惯,以后无论是换电脑、交接项目,还是在服务器上部署,环境问题都会少很多,花在排错上的时间也会明显变少。
- 点赞
- 收藏
- 关注作者
评论(0)