ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【第8期】小蓝伞的 Python 虚拟环境:为什么项目一多,依赖就开始“打架”

【第8期】小蓝伞的 Python 虚拟环境:为什么项目一多,依赖就开始“打架” 【第8期】小蓝伞的 Python 虚拟环境为什么项目一多依赖就开始“打架”系列《从小白到 AI 大模型开发工程师的进阶之路》技术点AI-0008 虚拟环境主人公小蓝伞先说结论每个 Python 项目都应有独立环境。虚拟环境隔离的是解释器可见的第三方包不是把 Python、操作系统或 GPU 驱动一起装进魔法沙盒环境仍需记录版本、备份并能重新创建。一、先确认 Python 和 pip 是同一套全局安装最隐蔽的问题是终端里的python、编辑器选择的解释器和pip可能来自不同目录。项目 A 需要旧版numpy项目 B 需要新版后安装的依赖也可能破坏先前项目。python --version python -c import sys; print(sys.executable) python -m pip --version推荐使用python -m pip。它把 pip 明确绑定到当前 Python比直接执行pip更不容易“安装成功、导入失败”。二、用 venv 创建一个可重建环境mkdir ai-env-demo cd ai-env-demo python -m venv .venv Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\.venv\Scripts\Activate.ps1 python -c import sys; print(sys.executable) python -m pip install --upgrade pip python -m pip install requests python -m pip freeze requirements.txt deactivate激活后提示符通常会显示(.venv)但最终应以sys.executable的路径为准它必须落在当前项目.venv内。小蓝伞曾经把同一个包安装三遍最后发现三遍都装进了不同的 Python。建议在干净环境复现一次python -m venv .venv-new .\.venv-new\Scripts\Activate.ps1 python -m pip install -r requirements.txt python -c import requests; print(requests.__version__).venv不应提交 Git只提交依赖清单。项目成熟后还要记录 Python 版本、操作系统、CUDA 与显卡条件requirements.txt不能替代这些运行前提。三、venv、conda 和其他工具怎么选方案适合场景需要注意venv pip普通 Python 项目、教学、轻量部署依赖系统 Python简单透明conda科学计算、复杂二进制依赖环境较重需要管理 channeluv 等工具追求快速安装与锁定先理解解释器和依赖边界再引入工具不要为了“看起来专业”混用多个环境管理器。一个项目先选一种能从零重建后再评估迁移。四、常见故障与排查顺序激活脚本被禁止只对当前 PowerShell 进程设置策略不要为了一个项目改变整台电脑的长期策略。编辑器提示找不到包选择.venv解释器再从编辑器终端执行python -m pip --version。安装失败核对网络、Python 版本和包兼容性镜像源只在可信、合规时配置。删除环境后不能运行这不是虚拟环境坏了而是依赖没有完整记录补齐清单后再重建。五、面试题1. 虚拟环境隔离了什么主要隔离解释器使用的包路径和脚本不隔离操作系统、GPU 驱动或系统服务。2. 为什么推荐python -m pip它使用当前 Python 调用 pip减少多 Python 安装导致的路径错配。3.requirements.txt能完全复现环境吗不能。还需要 Python 版本、操作系统、底层二进制依赖和硬件条件兼容。4. 为什么 AI 项目尤其需要环境隔离深度学习框架、CUDA 和科学计算包版本耦合明显混用常会出现“装得上但跑不动”。下一期我们把虚拟环境接到 Jupyter Notebook解决“终端能 importNotebook 却报错”的经典问题。点个关注不迷路环境可以重建习惯必须沉淀可复现是工程师给未来的自己留的路标。官方资料Python 官方文档venvPython Packaging User Guide六、让环境真的可复现依赖文件只是起点。建议同时记录 Python 版本、操作系统、CPU/GPU、CUDA 和安装命令跨平台项目要注意条件依赖文件能装上不能代替导入和运行验证。可以把环境检查写成脚本启动时打印解释器路径、关键库版本和配置来源路径不对就立即终止。不要把真实密钥写入依赖或配置文件使用环境变量和 .env.example。最后在全新目录执行恢复流程才算完成可复现练习。
返回列表