在 macOS 上使用 venv 切换环境,核心就是为每个项目创建独立的“沙盒”,并在终端中“激活”它。激活后,你安装的包和运行的 Python 命令就都在这个沙盒里了。

venv 是项目级别的环境隔离工具,它主要管理包的依赖,但不能切换 Python 主版本(例如从 3.9 切换到 3.11)。如果你的项目需要不同的 Python 主版本,可以配合我之前提到的 pyenv 一起使用。

下面就是详细的步骤指南:

📝 一步步教你用 venv 管理环境

1. 创建虚拟环境

首先,打开终端(Terminal)并进入你的项目目录,然后运行创建命令。通常,大家会把虚拟环境命名为 venv.venv,这样既标准又方便在 .gitignore 文件中忽略它。

# 进入你的项目文件夹
cd /path/to/your/project

# 创建一个名为 'venv' 的虚拟环境
python3 -m venv venv
  • python3: 调用你系统当前默认的 Python 3 解释器。

  • -m venv: 告诉 Python 运行 venv 这个模块。

  • venv: 这是你要创建的虚拟环境的目录名。运行后,项目文件夹下会多出一个叫 venv 的文件夹,里面包含了一个独立的 Python 解释器和库目录。

    小技巧:如果你的系统里安装了多个 Python 版本(比如 3.9 和 3.11),并且想用特定版本来创建环境,可以这样指定:

    # 使用 Python 3.9 版本来创建环境
    python3.9 -m venv venv
    
2. 激活虚拟环境

创建好之后,需要“激活”它才能开始使用。激活的命令在 macOS 上也是一样的:

# 激活刚才创建的 venv 环境
source venv/bin/activate

执行完这个命令后,你会发现终端命令行的最前面出现了 (venv) 标识。这就说明你已经成功进入了虚拟环境,接下来的操作都会在这个隔离的空间里进行。

3. 验证环境是否切换成功

激活后,可以通过以下命令来确认是否真的切换到了虚拟环境:

# 查看 Python 解释器的路径,应该指向你的项目目录下的 venv
which python
# 输出示例: /path/to/your/project/venv/bin/python

# 查看当前环境里安装了哪些包(刚创建时应该是空的或只有基础包)
pip list

如果 which python 显示的路径包含了你的项目文件夹和 venv,那就说明一切正常。

4. 在环境中管理项目依赖

现在,你可以在这个虚拟环境里自由地为你的项目安装包了,所有安装都不会影响到系统全局或其他项目。

# 安装一个包,例如 requests
pip install requests

# 安装特定版本的包
pip install django==4.2

# 如果你有 requirements.txt 文件,可以一键安装所有依赖
pip install -r requirements.txt

# 查看当前环境已安装的所有包
pip list

# 将当前环境的包列表导出到 requirements.txt 文件
pip freeze > requirements.txt

requirements.txt 文件非常重要,它记录了你项目精确的依赖关系。当你在新电脑上或与他人协作时,只需要通过 pip install -r requirements.txt 就能复现完全一样的环境。

5. 退出虚拟环境

当你在该项目的工作完成,想回到系统的全局 Python 环境时,只需运行一个简单的命令:

deactivate

运行后,命令行前的 (venv) 标识就会消失。

6. 删除虚拟环境

如果你不再需要这个项目环境了,直接删除它所在的文件夹即可,非常干净。

# 确保已经先 deactivate 退出了环境
rm -rf venv

💡 在 VS Code 中使用虚拟环境

如果你使用 VS Code 编辑器,可以更方便地切换环境。

  1. 打开项目文件夹。
  2. 使用快捷键 Shift + Command + P 打开命令面板。
  3. 输入 Python: Select Interpreter 并选择。
  4. 在弹出的列表中,找到并选择那个路径包含 venv 的选项(例如 ./venv/bin/python)。
  5. 之后,你在 VS Code 中打开的终端通常也会自动激活这个虚拟环境。

✨ 最佳实践小贴士

  • 一个项目,一个环境:强烈建议为每一个 Python 项目都创建它自己独立的虚拟环境。
  • 记录依赖:务必使用 pip freeze > requirements.txt 来记录项目的精确依赖。
  • 忽略环境文件夹:记得将 venv/.venv/ 添加到你的 .gitignore 文件中,避免将庞大的虚拟环境文件上传到代码仓库。

希望这份指南能帮你顺利地在 Mac 上用 venv 管理好 Python 环境。如果在操作中遇到什么具体的报错,或者想了解如何用 pyenv 来管理 Python 版本,随时可以再问我~

常见问题

vnev激活后发现虚拟环境内部中没有pip文件

激活虚拟环境后找不到 pip 文件,这是一个比较常见的问题。通常不是因为激活步骤错了,而是在创建虚拟环境的过程中出了岔子,导致 pip 本身就没有被安装进环境里。

🔍 为什么会出现这种情况?

这通常是由于你用来创建虚拟环境的系统 Python 缺少了 ensurepip 模块。venv 模块在创建环境时,正是依赖 ensurepip 来安装 pip 的 。

以下是在 macOS 上导致此问题的几个常见原因:

  1. 使用了系统自带的 Python(最常见):macOS 自带的 Python(通常在 /usr/bin/python3)出于系统稳定性考虑,可能会被裁剪,不一定包含完整的 venv 支持,或者 ensurepip 模块不可用 。
  2. 通过某种方式安装的 Python 不完整:如果你不是通过官方安装包或 homebrew 安装 Python,而是通过其他方式,可能会缺少一些标准库组件。
  3. 特定的 Python 版本问题:有记录显示,在某些系统上,使用特定版本的 Python (如 python3.10) 创建虚拟环境时,确实会出现 pip 丢失的情况 。

✅ 如何解决?

不用着急,你可以按照以下步骤来排查和修复。请打开你的终端(Terminal),按顺序尝试:

第一步:快速检查(确认问题根源)

首先,激活你那个没有 pip 的虚拟环境,然后运行 python -m ensurepip 命令,看看系统能否强制安装上 pip

# 1. 激活你的环境
source your_env_name/bin/activate

# 2. 尝试运行 ensurepip
python -m ensurepip --upgrade
  • 如果命令成功运行:那么 pip 应该就被安装到你的环境里了。之后你就可以正常使用 pip 了 。
Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐