0Pricing
Python Academy · 课时

虚拟环境为何重要

了解依赖冲突,以及隔离环境为何必不可少。

虚拟环境为何重要 是 CoddyKit 上的免费 Python Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

简介

没有虚拟环境时,所有 Python 包都会全局安装,导致不同项目之间发生版本冲突。

全局安装问题

默认情况下,pip 会安装到系统 Python 中。项目 A 需要 requests 2.25,项目 B 需要 2.28——发生冲突!
# Without venv:
# pip install requests==2.25  -> global
# pip install requests==2.28  -> overwrites 2.25!
print('global conflict demo')

什么是虚拟环境?

venv 是目录中的隔离式 Python 安装。每个项目都有自己的包,彼此独立。
# venv creates:
# project/
#   .venv/
#     bin/python     (isolated Python)
#     lib/site-packages/  (project packages)
print('venv structure')

可复现性

使用 venv 和 requirements.txt,任何人都可以重新创建完全相同的环境:pip install -r requirements.txt
# pip freeze > requirements.txt
# # Later, on another machine:
# python -m venv .venv
# pip install -r requirements.txt
print('reproducible env')

安全隔离

在 venv 中安装包不会影响系统 Python。不需要 sudo 或管理员权限,也不会有破坏系统工具的风险。
# System Python is untouched:
# /usr/bin/python -> system packages
# .venv/bin/python -> project packages only
print('security isolation')

CI/CD 与 Docker

在 CI/CD 和容器中,为每次构建创建全新的 venv,以确保环境干净且可复现。
# Dockerfile pattern:
# RUN python -m venv /opt/venv
# RUN /opt/venv/bin/pip install -r requirements.txt
print('ci/cd demo')

每个项目使用一个 venv

每个项目保留一个 venv,将其存储在项目根目录中的 .venv/ 内。切勿将其提交到版本控制系统。
# Add to .gitignore:
# .venv/
# __pycache__/
print('gitignore tip')

系统级、用户级与 venv 的 site-packages

Python 会按以下顺序查找包:venv site-packages → 用户 site → 全局 site。激活后,venv 的优先级最高。
import sys
print('\n'.join(p for p in sys.path if 'site' in p))

使用 pyenv 管理 Python 版本

pyenv 可以管理多个 Python 版本(3.10、3.11、3.12)。将它与 venv 结合使用即可实现完全隔离。
# pyenv install 3.12.0
# pyenv local 3.12.0
# python -m venv .venv
print('pyenv demo')

作为替代方案的 conda

conda(Anaconda/Miniconda)可以同时管理包和 Python 版本,在数据科学领域很受欢迎。
# conda create -n myenv python=3.11
# conda activate myenv
# conda install numpy pandas
print('conda demo')

最佳实践总结

始终在 venv 中工作。使用 requirements.txt 或 pyproject.toml。将 .venv/ 添加到 .gitignore 中。使用一致的 Python 版本。
import sys
print('Python:', sys.version)
print('venv:', sys.prefix != sys.base_prefix)

快速检查

虚拟环境主要解决什么问题?

回顾

虚拟环境:每个项目独立隔离。每个 venv 都有自己的包。使用 requirements.txt 实现可复现性。将 .venv/ 添加到 .gitignore 中。

继续学习

请继续努力!进入下一课。

常见问题解答

「虚拟环境为何重要」课时是免费的吗?

是的 — 「虚拟环境为何重要」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「虚拟环境为何重要」这节课中我会学到什么?

了解依赖冲突,以及隔离环境为何必不可少。 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「虚拟环境为何重要」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 虚拟环境为何重要
  2. 创建并激活 venv
  3. 使用 pip 管理依赖
  4. 现代工具:pipenv 与 uv
← 返回 Python Academy