Windows上多Python环境安装与管理实战指南

使用虚拟环境隔离项目

概述

核心:

  1. 手动安装多个 Python 版本(2.7.18 和 3.10.11)。
  2. 使用 py 启动器(Windows 自带的 Python 版本管理工具)选择特定版本运行 Python。
  3. 使用 virtualenv 工具为每个项目创建独立的虚拟环境,隔离不同 Python 版本和依赖包。

这种方法简单直接,适合需要在不同项目中使用不同 Python 版本的场景,且无需复杂的工具如 pyenv-win。虚拟环境确保每个项目的依赖互不干扰。

前提条件

  • 操作系统:Windows 10 或 11。
  • 工具:命令提示符(cmd)或 PowerShell(以下示例优先使用 cmd 避免 PowerShell 执行策略问题)。
  • 网络:确保可以访问 Python 官网(https://www.python.org)。
  • 工作目录C:\Users\YK\Downloads\elegent-builder-master\zaw\vue-for-love_website\ZAW-vue
  • 磁盘空间:每个 Python 版本约需 100-200 MB,虚拟环境根据依赖大小变化。

  • 详细步骤

    1. 安装 Python 2.7.18 和 3.10.11

    我们将分别下载并安装 Python 2.7.18 和 3.10.11,确保它们可以在系统中共存,并使用 py 启动器管理。

    1.1 下载 Python 安装包
    1. 打开浏览器,访问 Python 官方网站:https://www.python.org/downloads/
    2. 下载以下版本(以 64 位为例,假设你的系统是 64 位):
    3. Python 2.7.18
    4. 直接链接:https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi
    5. 保存到 C:\Users\YK\Downloads(或其他方便的位置)。
    6. Python 3.10.11
    7. 直接链接:https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
    8. 保存到 C:\Users\YK\Downloads
    1.2 安装 Python 2.7.18
    1. 双击 python-2.7.18.amd64.msi 运行安装程序。
    2. 配置安装选项:
    3. 选择“Install for all users”(推荐)。
    4. 设置安装路径:C:\Python27(避免与其他版本冲突)。
    5. 不要勾选“Add Python to PATH”,以防止覆盖默认 PATH。
    6. 点击“Next”完成安装(约需 1-2 分钟)。
    7. 验证安装:
    8. 打开命令提示符(cmd):
    9. Win + R,输入 cmd,按 Enter。
    10. 运行:
      C:\Python27\python.exe --version
      

      输出Python 2.7.18

    11. 验证 pip
      C:\Python27\Scripts\pip.exe --version
      

      输出pip x.x.x from ... (python 2.7)

    1.3 安装 Python 3.10.11
    1. 双击 python-3.10.11-amd64.exe 运行安装程序。
    2. 配置安装选项:
    3. 勾选“Add Python 3.10 to PATH”(确保 py 启动器可用)。
    4. 选择自定义安装路径:C:\Python310
    5. 确保勾选“Install Python Launcher for Windows”(默认已选)。
    6. 点击“Install”完成安装(约需 1-2 分钟)。
    7. 验证安装:
    8. cmd 中运行:
      py -3.10 --version
      

      输出Python 3.10.11

    9. 验证 pip
      py -3.10 -m pip --version
      

      输出pip x.x.x from ... (python 3.10)

    1.4 验证 py 启动器

    py 启动器是 Windows 管理多个 Python 版本的关键工具,安装 Python 3.10 时已自动包含。

  • 运行:
    py -0
    

    输出

    Installed Pythons found by py Launcher for Windows
     -3.10-64 *
     -2.7-64
    
  • 说明:* 表示默认版本(通常是 3.10),-2.7-64-3.10-64 表示可用版本。

  • 2. 安装 virtualenv

    virtualenv 是一个 Python 包,用于创建虚拟环境。我们将使用 Python 3.10 的 pip 安装它。

    1. cmd 中运行:

      py -3.10 -m pip install virtualenv
      
    2. 说明:确保使用 Python 3.10 的 pip 安装 virtualenv
    3. 输出:安装成功信息,如:
      Collecting virtualenv
      ...
      Successfully installed virtualenv-x.x.x
      
    4. 验证 virtualenv 安装:

      py -3.10 -m virtualenv --version
      

      输出virtualenv x.x.x from ...


    3. 创建虚拟环境

    为每个项目创建独立的虚拟环境,分别使用 Python 2.7.18 和 3.10.11。

    3.1 为 Python 2.7.18 创建虚拟环境
    1. 在工作目录创建虚拟环境:

      cd C:\Users\YK\Downloads\elegent-builder-master\zaw\vue-for-love_website\ZAW-vue
      py -2.7 -m virtualenv venv27
      
    2. 说明venv27 是虚拟环境目录,创建在 ZAW-vue\venv27
    3. 输出
      created virtual environment CPython2.7.18.final.0-64 in xxxms
      ...
      
    4. 验证虚拟环境:

    5. 检查 venv27 目录:
      dir venv27
      

      输出:包含 ScriptsLib 等子目录。

    6. 检查 Python 版本:
      venv27\Scripts\python.exe --version
      

      输出Python 2.7.18

    3.2 为 Python 3.10.11 创建虚拟环境
    1. 创建虚拟环境:

      py -3.10 -m virtualenv venv310
      
    2. 说明venv310 创建在 ZAW-vue\venv310
    3. 输出
      created virtual environment CPython3.10.11.final.0-64 in xxxms
      ...
      
    4. 验证虚拟环境:

      venv310\Scripts\python.exe --version
      

      输出Python 3.10.11


    4. 激活虚拟环境并安装依赖

    激活虚拟环境后,命令行会自动使用该环境的 Python 和 pip,隔离项目的依赖。

    4.1 激活 Python 2.7.18 虚拟环境
    1. 激活:

      cd C:\Users\YK\Downloads\elegent-builder-master\zaw\vue-for-love_website\ZAW-vue
      venv27\Scripts\activate
      
    2. 输出:命令提示符前显示 (venv27),如:
      (venv27) C:\Users\YK\Downloads\elegent-builder-master\zaw\vue-for-love_website\ZAW-vue>
      
    3. 验证:

      python --version
      

      输出Python 2.7.18

      pip --version
      

      输出pip x.x.x from ... (python 2.7)

    4. 安装依赖(以 requests 为例,指定 Python 2.7 兼容版本):

      pip install requests==2.22.0
      
    5. 说明:Python 2.7 已停止支持,需使用旧版本的库。
    6. 输出:安装成功信息。
    7. 验证安装:

      pip list
      

      输出:包含 requests (2.22.0) 等。

    4.2 激活 Python 3.10.11 虚拟环境
    1. 激活:

      venv310\Scripts\activate
      
    2. 输出:提示符显示 (venv310)
    3. 验证:

      python --version
      

      输出Python 3.10.11

      pip --version
      

      输出pip x.x.x from ... (python 3.10)

    4. 安装依赖(以 numpy 为例):

      pip install numpy
      

      输出:安装成功信息。

    5. 验证安装:

      pip list
      

      输出:包含 numpy 等。

    4.3 退出虚拟环境

    在任一虚拟环境中,运行:

    deactivate
    
  • 输出:提示符恢复正常,退出虚拟环境。

  • 5. 示例场景

    C:\Users\YK\Downloads\elegent-builder-master\zaw\vue-for-love_website\ZAW-vue 下创建两个项目,分别使用 Python 2.7.18 和 3.10.11。

    ProjectA:使用 Python 2.7.18 和 requests
    1. 创建项目目录:

      mkdir ProjectA
      cd ProjectA
      
    2. 创建并激活虚拟环境:

      py -2.7 -m virtualenv venv
      venv\Scripts\activate
      
    3. 提示符显示 (venv)python --version 输出 Python 2.7.18
    4. 安装 requests

      pip install requests==2.22.0
      
    5. 创建脚本 script_a.py

      echo @echo off > script_a.py
      echo import requests >> script_a.py
      echo print "Fetching data..." >> script_a.py
      echo response = requests.get("https://api.github.com") >> script_a.py
      echo print response.json() >> script_a.py
      

      内容:

      # script_a.py
      import requests
      print "Fetching data..."
      response = requests.get("https://api.github.com")
      print response.json()
      
    6. 运行:

      python script_a.py
      

      输出:GitHub API 数据(JSON 格式),如:

      Fetching data...
      {'current_user_url': 'https://api.github.com/user', ...}
      
    7. 退出虚拟环境:

      deactivate
      cd ..
      
    ProjectB:使用 Python 3.10.11 和 numpy
    1. 创建项目目录:

      mkdir ProjectB
      cd ProjectB
      
    2. 创建并激活虚拟环境:

      py -3.10 -m virtualenv venv
      venv\Scripts\activate
      
    3. 提示符显示 (venv)python --version 输出 Python 3.10.11
    4. 安装 numpy

      pip install numpy
      
    5. 创建脚本 script_b.py

      echo @echo off > script_b.py
      echo import numpy as np >> script_b.py
      echo print("Generating array...") >> script_b.py
      echo array = np.array([1, 2, 3]) >> script_b.py
      echo print(array) >> script_b.py
      

      内容:

      # script_b.py
      import numpy as np
      print("Generating array...")
      array = np.array([1, 2, 3])
      print(array)
      
    6. 运行:

      python script_b.py
      

      输出

      Generating array...
      [1 2 3]
      
    7. 退出虚拟环境:

      deactivate
      cd ..
      

    6. 验证环境隔离

    确保 ProjectA 和 ProjectB 的环境互不干扰:

    1. 检查 ProjectA

      cd ProjectA
      venv\Scripts\activate
      python --version
      pip list
      

      输出

    2. Python 2.7.18
    3. 包列表包含 requests==2.22.0,无 numpy
    4. 检查 ProjectB

      cd ..\ProjectB
      venv\Scripts\activate
      python --version
      pip list
      

      输出

    5. Python 3.10.11
    6. 包列表包含 numpy,无 requests
    7. 检查全局环境

      cd ..
      deactivate
      py -3.10 --version
      py -2.7 --version
      

      输出

    8. Python 3.10.11
    9. Python 2.7.18

    可能遇到的问题及解决方法

    1. 错误:py 命令无效

    2. 原因:Python 3.10 未正确安装,或 py 启动器未添加到 PATH。
    3. 解决
    4. 确认 C:\Python310C:\Python310\Scripts 在 PATH 中:
      echo %PATH%
      
    5. 如果缺失,重新运行 Python 3.10 安装程序,勾选“Add Python 3.10 to PATH”。
    6. 验证:
      py --version
      
    7. 错误:virtualenv 安装失败

    8. 原因:网络问题或 pip 版本过旧。
    9. 解决
    10. 更新 pip
      py -3.10 -m pip install --upgrade pip
      
    11. 使用国内镜像:
      py -3.10 -m pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
      
    12. 错误:虚拟环境创建失败

    13. 原因:磁盘空间不足或 Python 路径错误。
    14. 解决
    15. 确认 C:\Python27\python.exeC:\Python310\python.exe 存在。
    16. 清理磁盘空间,确保 C: 盘有至少 500 MB 可用。
    17. 重试:
      py -2.7 -m virtualenv venv27
      
    18. 错误:pip 安装包失败

    19. 原因:Python 2.7 兼容性问题或网络问题。
    20. 解决
    21. 指定旧版本:
      pip install requests==2.22.0
      
    22. 使用国内镜像:
      pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
      
    23. 错误:激活虚拟环境失败

    24. 原因:路径错误或 Scripts\activate.bat 缺失。
    25. 解决
    26. 确认虚拟环境目录存在:
      dir venv27\Scripts
      
    27. 手动运行:
      venv27\Scripts\activate.bat
      

    预防措施

  • 避免 PATH 冲突:仅为 Python 3.10 添加 PATH,避免 C:\Python27 干扰。
  • Python 2.7 兼容性:Python 2.7 已停止支持,安装包时需指定旧版本(如 requests==2.22.0)。
  • 磁盘空间:确保 C: 盘有足够空间(建议 1 GB 以上)。
  • 备份环境:重要项目前,备份虚拟环境目录(如 venv27venv310)。
  • 使用 cmd:优先使用命令提示符,避免 PowerShell 的执行策略问题。

  • 总结

    通过方法 2,你可以在 Windows 上:

    1. 安装 Python 2.7.18 和 3.10.11,使用 py 启动器管理版本。
    2. 使用 virtualenv 为每个项目创建独立的虚拟环境(venv27venv310)。
    3. 在 ProjectA 和 ProjectB 中分别运行 Python 2.7.18 和 3.10.11 的脚本,依赖隔离。

    工作流示例

  • 运行旧项目(ProjectA):
    cd ProjectA
    venv\Scripts\activate
    python script_a.py
    deactivate
    
  • 运行新项目(ProjectB):
    cd ProjectB
    venv\Scripts\activate
    python script_b.py
    deactivate
    
  • 如果在执行上述步骤时遇到任何问题(例如命令无效、安装失败或脚本运行错误),请提供以下信息,我会进一步协助:

  • 具体错误信息。
  • 运行 py -0 的输出。
  • 运行 echo %PATH% 的输出。
  • 是否使用 cmd 或 PowerShell。
  • 以下是简单一点的描述:更方便看懂和操作

    简易操作:用虚拟环境管理 Python 2.7 和 3.10

    目标

  • 安装 Python 2.7.18 和 3.10.11。
  • 为两个项目(ProjectA 用 Python 2.7,ProjectB 用 Python 3.10)创建独立环境。
  • 运行简单的测试脚本。
  • 准备

  • 用命令提示符(cmd),避免 PowerShell 问题:
  • Win + R,输入 cmd,按 Enter。
  • 工作目录:C:\Users\YK\Downloads\elegent-builder-master\zaw\vue-for-love_website\ZAW-vue

  • 步骤

    1. 安装 Python 2.7.18 和 3.10.11
    1. 下载安装包

    2. 打开浏览器,访问:
    3. Python 2.7.18:https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi
    4. Python 3.10.11:https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
    5. 保存到 C:\Users\YK\Downloads
    6. 安装 Python 2.7.18

    7. 双击 python-2.7.18.amd64.msi
    8. 选择安装路径:C:\Python27
    9. 不要勾选“Add Python to PATH”
    10. 点击“Next”完成安装。
    11. 验证(在 cmd):
      C:\Python27\python.exe --version
      

      输出:Python 2.7.18

    12. 安装 Python 3.10.11

    13. 双击 python-3.10.11-amd64.exe
    14. 勾选“Add Python 3.10 to PATH”
    15. 选择安装路径:C:\Python310
    16. 点击“Install”完成安装。
    17. 验证:
      py -3.10 --version
      

      输出:Python 3.10.11

    18. 检查 py 启动器

      py -0
      

      输出:

      -3.10-64 *
      -2.7-64
      

    2. 安装 virtualenv
    1. cmd 中运行:

      py -3.10 -m pip install virtualenv
      

      输出:安装成功。

    2. 验证:

      py -3.10 -m virtualenv --version
      

      输出:virtualenv x.x.x


    3. 创建虚拟环境

    在工作目录运行以下命令:

    cd C:\Users\YK\Downloads\elegent-builder-master\zaw\vue-for-love_website\ZAW-vue
    
    1. Python 2.7 虚拟环境

      py -2.7 -m virtualenv venv27
      

      输出:创建 venv27 目录。

    2. Python 3.10 虚拟环境

      py -3.10 -m virtualenv venv310
      

      输出:创建 venv310 目录。


    4. 测试项目

    创建两个项目,分别用 Python 2.7 和 3.10。

    ProjectA(Python 2.7)
    1. 创建目录:

      mkdir ProjectA
      cd ProjectA
      
    2. 激活虚拟环境:

      ..\venv27\Scripts\activate
      

      输出:提示符显示 (venv27)

    3. 安装 requests

      pip install requests==2.22.0
      
    4. 创建脚本 script_a.py

      echo import requests>script_a.py
      echo print "Fetching data...">>script_a.py
      echo response = requests.get("https://api.github.com")>>script_a.py
      echo print response.json()>>script_a.py
      
    5. 运行:

      python script_a.py
      

      输出:

      Fetching data...
      {'current_user_url': 'https://api.github.com/user', ...}
      
    6. 退出:

      deactivate
      cd ..
      
    ProjectB(Python 3.10)
    1. 创建目录:

      mkdir ProjectB
      cd ProjectB
      
    2. 激活虚拟环境:

      ..\venv310\Scripts\activate
      

      输出:提示符显示 (venv310)

    3. 安装 numpy

      pip install numpy
      
    4. 创建脚本 script_b.py

      echo import numpy as np>script_b.py
      echo print("Generating array...")>>script_b.py
      echo array = np.array([1, 2, 3])>>script_b.py
      echo print(array)>>script_b.py
      
    5. 运行:

      python script_b.py
      

      输出:

      Generating array...
      [ komme 2 3]
      
    6. 退出:

      deactivate
      cd ..
      

    验证

    1. ProjectA

      cd ProjectA
      ..\venv27\Scripts\activate
      python --version
      pip list
      

      输出:

    2. Python 2.7.18
    3. 包含 requests==2.22.0
    4. ProjectB

      cd ProjectB
      ..\venv310\Scripts\activate
      python --version
      pip list
      

      输出:

    5. Python 3.10.11
    6. 包含 numpy

    常见问题

    1. 找不到 py 命令

    2. 确保 Python 3.10 安装时勾选了“Add Python 3.10 to PATH”。
    3. 重新安装 Python 3.10。
    4. 虚拟环境创建失败

    5. 检查 C:\Python27\python.exeC:\Python310\python.exe 是否存在。
    6. 确保磁盘空间足够(至少 500 MB)。
    7. 安装包失败

    8. 用国内镜像:
      pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
      
    9. Python 2.7 用旧版本:
      pip install requests==2.22.0
      

    总结

  • 安装:Python 2.7.18 和 3.10.11,用 py 管理。
  • 虚拟环境venv27(Python 2.7)、venv310(Python 3.10)。
  • 项目:ProjectA 用 Python 2.7 跑 requests;ProjectB 用 Python 3.10 跑 numpy
  • 快速运行

  • ProjectA:
    cd ProjectA
    ..\venv27\Scripts\activate
    python script_a.py
    deactivate
    
  • ProjectB:
    cd ProjectB
    ..\venv310\Scripts\activate
    python script_b.py
    deactivate
    
  • 如果有问题(比如命令失败或输出不对),告诉我具体错误,我帮你解决!

    作者:ascarl2010

    物联沃分享整理
    物联沃-IOTWORD物联网 » Windows上多Python环境安装与管理实战指南

    发表回复