文章目录

  • 环境
  • Python虚拟环境简介
  • 实现方式
  • venv
  • 创建虚拟环境
  • 激活虚拟环境
  • 安装包
  • VSCode
  • requirement.txt
  • 解除激活
  • 参考
  • 环境

  • Windows 11 专业版
  • Python 3.13.3
  • PowerShell 7.5.1
  • VSCode 1.100.1
  • Python虚拟环境简介

    Python虚拟环境(Virtual Environment)是一个独立的Python运行环境,允许你在同一台机器上为不同项目创建隔离的Python工作空间。

    这样,不同项目可以使用不同版本的Python包,比如,项目A使用 numpy==1.21 版本,同时项目B使用 numpy==2.0 版本,两个项目可以同时并存。

    此外,可以精确记录项目所需的依赖,便于在其它环境部署(通常使用 requirements.txt 文件)。

    实现方式

    Python有几种创建虚拟环境的方式:

  • venv:Python 3.3+内置
  • virtualenv:第三方工具,支持Python 2和3
  • conda:Anaconda/Miniconda提供
  • 本文只介绍 venv 方式。

    venv

    新建一个目录(比如 test0527 )作为项目的根目录。

    创建虚拟环境

    在该目录下运行:

    python -m venv <env name>
    

    即可创建一个本地虚拟环境。

    比如:

    PS C:\temp\test0527> python -m venv .venv
    

    就在本地创建了一个 .venv 目录。

    注:我使用的是Windows下的PowerShell。

    激活虚拟环境

    运行 .\.venv\Scripts\activate 来激活该虚拟环境:

    PS C:\temp\test0527> .\.venv\Scripts\activate
    (.venv) PS C:\temp\test0527> 
    

    可见,虚拟环境激活后,在命令行最左边出现了 (.venv) 提示,表示你当前正在使用的虚拟环境名称。

    注:若要解除激活,直接运行 deactivate 即可,因为激活时,已经把所在目录放在路径里了。

    现在,查看一下 pythonpip 命令:

    (.venv) PS C:\temp\test0527> where.exe python
    C:\temp\test0527\.venv\Scripts\python.exe
    C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\python.exe
    (.venv) PS C:\temp\test0527> where.exe pip
    C:\temp\test0527\.venv\Scripts\pip.exe
    C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\pip.exe
    

    注:可用 where.exe 或者 get-command 命令,二者略有不同。

    可见,会用虚拟环境里的 pythonpip 了。

    安装包

    接下来,在虚拟环境里安装包,比如:

    pip install openai
    

    确认安装:

    (.venv) PS C:\temp\test0527> pip list
    Package           Version
    ----------------- ---------
    annotated-types   0.7.0
    anyio             4.9.0
    certifi           2025.4.26
    colorama          0.4.6
    distro            1.9.0
    h11               0.16.0
    httpcore          1.0.9
    httpx             0.28.1
    idna              3.10
    jiter             0.10.0
    openai            1.82.0
    pip               25.0.1
    pydantic          2.11.5
    pydantic_core     2.33.2
    sniffio           1.3.1
    tqdm              4.67.1
    typing_extensions 4.13.2
    typing-inspection 0.4.1
    

    可见,已经包含openai了。此时在虚拟环境之外(比如再开一个shell),运行 pip install ,则不会显示openai。

    VSCode

    在VSCode里,新建窗口,打开目录 test0527 ,创建文件 test1.py 如下:

    from openai import OpenAI
    
    # for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.
    client = OpenAI(api_key="sk-xxxxxxx", base_url="https://api.deepseek.com")
    
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "system", "content": "You are a helpful assistant"},
            {"role": "user", "content": "Hello"},
      ],
        max_tokens=1024,
        temperature=0.7,
        stream=False
    )
    
    print(response.choices[0].message.content)
    

    注:这里的API key使用了 xxxxxxx ,更常见的做法是把敏感信息放在环境变量里,然后代码从环境变量读取信息。

    运行文件,报错:

    ModuleNotFoundError: No module named 'openai'
    

    不是已经安装 openai 包了吗,为什么还报错呢?

    这是因为,在VSCode的环境里,还没有激活虚拟环境。

    Ctrl + Shift + P ,然后选择 Python: Select Interpreter ,接下来选择虚拟环境里的Python,如下图所示:

    可以看到,右下角已经显示出Python版本和虚拟环境:

    现在,再运行代码,就OK了。

    注:这里的命令行,最左边并没有显示虚拟环境名称,但实际上已经激活了。

    requirement.txt

    在当前环境下,运行:

    pip freeze > requirements.txt
    

    生成 requirements.txt 文件,里面包含了项目所依赖的包:

    annotated-types==0.7.0
    anyio==4.9.0
    certifi==2025.4.26
    colorama==0.4.6
    distro==1.9.0
    h11==0.16.0
    httpcore==1.0.9
    httpx==0.28.1
    idna==3.10
    jiter==0.10.0
    openai==1.82.0
    pydantic==2.11.5
    pydantic_core==2.33.2
    sniffio==1.3.1
    tqdm==4.67.1
    typing-inspection==0.4.1
    typing_extensions==4.13.2
    

    把该文件复制到另外一个新创建的环境里,运行:

    pip install -r requirements.txt
    

    即可一键安装所有依赖。

    解除激活

    运行 deactivate 命令可解除虚拟环境的激活状态。

    参考

  • pip help
  • pip help xxx
  • 作者:蓝黑2020

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python虚拟环境详解

    发表回复