Python 虚拟环境怎么用?建、激活、装包、删除四步走

Python 虚拟环境怎么用?一句话:进项目目录,敲 python -m venv .venv,激活后所有 pip install 都只落在这个项目里。下面按「建 → 激活 → 装包 → 删除」走一遍,每一步写清在哪敲、敲完看到什么。

先弄清虚拟环境到底隔离了什么

  • 不建环境时,pip install requests 装进系统 Python 的 site-packages,全机器共用一个池子,两个项目要不同版本就打架。
  • 虚拟环境就是个普通文件夹,里面有自己的 python、pip 和 site-packages;激活后命令行优先用这一份。
  • 好处很实在:项目 A 用旧版库、项目 B 用新版库互不影响;项目不要了直接删文件夹,不留垃圾。
  • 成本为零:venv 是 Python 3 标准库自带的,不用额外安装、不花钱。它管不了 Python 版本本身,只隔离第三方包。

建和激活:4 步走完

  1. 打开终端,进项目目录:cd ~/code/demo。后面所有命令都在这里敲。
  1. 建环境:python -m venv .venv。没有任何输出就是成功,ls -a 能看到多出一个 .venv 文件夹。
  1. 激活,按系统选一条:
  • macOS / Linux:source .venv/bin/activate
  • Windows PowerShell:.venvScriptsActivate.ps1
  • Windows cmd:.venvScriptsactivate.bat
  1. 验收:提示符最前面多出 (.venv);再敲 which python(Windows 用 where python),路径应指向项目里的 .venv。

看不到 (.venv) 就是没激活,这时候装包会装到全局。另外把 .venv/ 写进 .gitignore,不要提交进仓库。环境名习惯用 .venv,编辑器会自动优先识别它。

Python 虚拟环境激活后终端提示符显示 .venv 标记的画面
激活成功后,终端提示符最前面会多出 (.venv)

装包与还原依赖

激活状态下直接 pip install requests,包只进当前环境,装完 pip list 能看到。

  • 导出清单:pip freeze > requirements.txt
  • 别人拿到项目:先建并激活环境,再 pip install -r requirements.txt
  • 下载慢就换镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
  • pip freeze 会把间接依赖一起写进去,做应用没问题;要发布给别人当库用的,直接依赖手写更清爽。

依赖清单要跟着代码走,环境文件夹不要跟着走——别人按清单一条命令就能重建,传文件夹反而容易带上本机的绝对路径。

删掉环境和四个常见坑

退出用 deactivate,提示符前的 (.venv) 消失。删环境就是删文件夹:先 deactivate,再 rm -rf .venv(Windows 资源管理器里直接删目录)。

  • 坑 1:没激活就装包。先看提示符里有没有 (.venv),没有就重跑激活命令。
  • 坑 2:编辑器认不到环境。VS Code 按 Ctrl+Shift+P 选 Python: Select Interpreter,指到 .venv/bin/python(Windows 是 .venvScriptspython.exe)。
  • 坑 3:项目路径带中文或空格,个别工具会出怪问题,路径尽量用英文。
  • 坑 4:把 .venv 放进网盘同步目录,容易出现文件被占用、装包中断;同步目录只放代码。

venv、conda、poetry 怎么挑

  • venv:零成本、够用,适合绝大多数纯 Python 项目;短板是换不了 Python 版本本身。
  • conda(Miniconda):机器上要并存两个 Python 版本,或常装 numpy、pytorch 这类带编译产物的包,能省去折腾;代价是安装包体积大、命令习惯不一样。
  • poetry:需要锁依赖版本、要发布到 PyPI 的项目再上,多一层学习成本。
  • 判断顺序:先 venv 跑通,真遇到版本切换或二进制依赖问题再换,不要一开始就上最重的方案。

常见问题(FAQ)

Q1:激活时报「禁止运行脚本」怎么办?

这是 Windows PowerShell 的执行策略限制,不是环境建错了。执行 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 后重开终端;不想改策略就用 cmd 跑 .venvScriptsactivate.bat。

Q2:虚拟环境要不要提交到 git?

不要。它是本机根据 requirements.txt 重建出来的产物,提交后仓库会塞进成千上万个文件。只提交代码和 requirements.txt。

Q3:激活成功、包也装了,换个终端又报模块找不到?

新开的终端不会自动激活,重新执行一次激活命令即可。这是最常见的原因,不用重装 Python。

Q4:一个项目能建几个虚拟环境?

能建多个,比如一个跑测试一个跑开发,但日常一个 .venv 足够;建多了只占磁盘,还容易记不清哪个在用。

最后更新:2026-10-29(工具界面、命令与镜像源地址可能调整,请以官方页面为准)。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...