在 Python 中,虚拟环境(Virtual Environment) 是用于隔离不同项目的依赖和运行环境的工具。通过创建虚拟环境,可以确保不同项目之间的依赖互不干扰。例如,项目 A 可能使用某个库的版本 1.0,而项目 B 可能使用同一个库的版本 2.0,通过虚拟环境可以避免版本冲突。

虚拟环境的原理

虚拟环境通过创建一个独立的 Python 解释器和包安装目录,使项目在该环境中运行时不会受到全局 Python 环境的影响。虚拟环境中的所有 Python 库、包、解释器都是在隔离的空间中,不影响系统的其他 Python 环境。

如何创建和管理虚拟环境

1. 使用 venv 模块

Python 从 3.3 版本开始内置了 venv 模块,用于创建虚拟环境。

创建虚拟环境步骤:
  1. 创建虚拟环境:
    在终端或命令行中进入你想创建虚拟环境的目录,然后执行以下命令:

    python -m venv myenv
    
  2. python -m venv 是调用 venv 模块。
  3. myenv 是虚拟环境的名称,你可以根据需要命名。
  4. 这会创建一个名为 myenv 的文件夹,里面包含虚拟环境的 Python 解释器和包管理工具 pip

  5. 激活虚拟环境:

  6. Windows 系统上,运行:

    myenv\Scripts\activate
    
  7. Linux/Mac 系统上,运行:

    source myenv/bin/activate
    
  8. 激活虚拟环境后,命令行的提示符会变化,显示你所处的虚拟环境名称,比如 (myenv)

  9. 在虚拟环境中安装库:

    激活虚拟环境后,你可以使用 pip 安装项目依赖的库。例如,安装 requests 库:

    pip install requests
    

    安装的库会仅存储在 myenv 虚拟环境中,不会影响系统全局环境。

  10. 查看已安装的包:

    使用 pip list 查看当前虚拟环境中已安装的包:

    pip list
    
  11. 将当前安装包及其版本保存到 requirements.txt

    在激活的虚拟环境中,使用 pip freeze 命令生成项目的依赖文件 requirements.txt

    pip freeze > requirements.txt
    

    该文件会包含当前虚拟环境中所有已安装的库及其版本号,例如:

    Flask==2.0.1
    requests==2.26.0
    
  12. 使用 requirements.txt 安装依赖

    无论是在 Windows 还是 Linux/MacOS 上,你都可以使用相同的命令从 requirements.txt 文件中安装所有依赖:

    pip install -r requirements.txt
    

    这会根据文件中列出的依赖和版本号进行批量安装。

  13. 退出虚拟环境:

    当你完成工作后,使用以下命令退出虚拟环境:

    deactivate
    

    退出后,虚拟环境会被“取消激活”,终端会返回到系统全局的 Python 解释器中。

完整的流程对比(Windows vs Linux/MacOS)

步骤 Windows Linux/MacOS
创建虚拟环境 python -m venv myenv python -m venv myenv
激活虚拟环境 myenv\Scripts\activate source myenv/bin/activate
安装依赖 pip install flask requests pip install flask requests
保存依赖 pip freeze > requirements.txt pip freeze > requirements.txt
安装依赖 pip install -r requirements.txt pip install -r requirements.txt
退出虚拟环境 deactivate deactivate
2. 使用 virtualenv 工具

virtualenv 是一个第三方工具,适用于 Python 2 和 Python 3,功能类似 venv,但具有更广泛的兼容性。

安装 virtualenv

如果你想使用 virtualenv,可以先安装它:

pip install virtualenv
使用 virtualenv 创建虚拟环境:
virtualenv myenv

其他使用方式(激活、安装包、退出等)与 venv 基本相同。

3. 管理虚拟环境中的依赖
使用 requirements.txt

在项目中记录所有依赖的库及其版本,便于其他开发者或在不同环境中复现安装。

  1. 生成 requirements.txt 文件:

    pip freeze > requirements.txt
    

    这会生成一个 requirements.txt 文件,列出当前虚拟环境中所有已安装的库及其版本号。

  2. 通过 requirements.txt 安装依赖:

    当你分享项目给他人时,其他人可以通过 requirements.txt 来安装项目的所有依赖:

    pip install -r requirements.txt
    

场景示例

  • 项目隔离:假设你在开发两个 Python 项目,分别需要不同版本的依赖库。你可以为每个项目创建独立的虚拟环境,避免库版本冲突。
  • 团队合作:你可以通过共享 requirements.txt 文件,让团队中的其他人快速配置相同的开发环境。
  • 部署应用:在将应用部署到生产环境之前,使用虚拟环境可以确保生产环境与开发环境一致。
  • 结论

    虚拟环境是一种有效的工具,用于隔离项目的依赖,避免版本冲突。使用 venvvirtualenv 可以轻松创建和管理虚拟环境,确保项目的独立性和可移植性。

    作者:pumpkin84514

    物联沃分享整理
    物联沃-IOTWORD物联网 » python——虚拟环境

    发表回复