Python与VSCode光标协同:利用uv快速创建独立虚拟环境,轻松管理项目环境

从笨重的pycharm转到vscode/cursor。

vscode是编辑器,虽然可以安装各种extension,还是需要安装python解释器。

安装python,实现基本代码运行:

  1. 去python官网下载python的windows安装包(python解释器)
  2. 安装时记得选择customized,安装非C盘中(比如D盘)
  3. 将python添加到PATH中:把刚刚安装python的路径添加到系统环境变量中(2个):D:\Program Files\Python314D:\Program Files\Python314\Scripts\(添加到变量名为Path中)
  4. 在cursor中运行代码时,系统会自动匹配extension帮助找到python解释器(使用cursor编辑器)
  5. cmd中输入python --version显示python版本,说明安装成功。

安装pip

情况:安装的时候出现Scripts现文件夹为空的情况(存放的是pip.exe启动器,才能使用pip命令)。通常来说执行python -m ensurepip会安装pip核心代码在Lib中,然后在Scripts中安装pip启动器,该启动器调用python -m pip,所以也可以通过python -m命令,不依赖PATH进行安装:python -m pip install uv

因此,强制安装pip.exe启动器:python -m pip install --force-reinstall pip,通过卸载pip再安装pip实现,于是scripts中可以看见pip.exe,重新打开cmd输入pip --version,可以正常显示了。

uv实现在相应的项目中安装虚拟环境(一个项目一个虚拟环境)

进入项目文件夹,运行uv venv,会生成虚拟环境(virtual environment):
D:\project
├── .venv\(存放虚拟环境)
├── main.py(项目代码)
运行.venv\Scripts\activate激活该虚拟环境。
deactivate退出该虚拟环境。

由于激活虚拟环境的代码麻烦,可以在项目目录下新建activate.bat文件,内容为:

@echo off
call .venv\Scripts\activate

后续在项目目录下cmd输入activate实现激活该虚拟环境,deactivate退出该虚拟环境。

==================================== 更新 ====================================

更新

情况:虚拟环境创建并激活后,使用pip安装的包出现在了全局的D:\Program Files\Python314\Libsite-packages中,而不是当前项目的\.venv\Lib\site-packages中,导致还是得使用全局python环境才能使用新安装的包。

原因:这是由于尽管激活了虚拟环境,但是使用的还是全局的pip,而虚拟环境的\.venv\Scripts中没有pip.exe
使用where python可以查看当前使用的python环境是全局的还是虚拟环境的。
使用where pip可以查看当前使用的pip是全局的还是虚拟环境的。

解决:激活虚拟环境后,在虚拟环境中安装pippython -m ensurepip --upgrade,此时在.venv\Scripts中有pip3.exe,可以通过pip3正常使用了,如果习惯用pip的,可以通过 将pip3.exe复制为pip.exe即可(也可以手动复制)。

因此创建新的activate.bat文件,双击即可实现:

  • 创建虚拟环境
  • 激活该环境
  • 输出 python 路径
  • 检查是否有 pip.exe,没有就装
  • 若还没有 pip.exe,用 pip3.exe 复制一份
  • 输出 pip 路径和版本
  • double check是便于查看:
  • 当前 Python 路径
  • 当前 pip 路径与版本
  • 内容为:

    @echo off
    
    set CREATED=0
    
    :: Step 1: Check and create virtual environment
    if exist ".venv\Scripts\python.exe" (
        set CREATED=0
    ) else (
        uv venv .venv
        set CREATED=1
    )
    
    :: Step 2: Activate
    call .venv\Scripts\activate
    
    echo.
    
    :: Now echo Step 1 and 2 results after activation
    echo === Step 1: Virtual environment status ===
    if %CREATED%==1 (
        echo Created new virtual environment.
    ) else (
        echo Virtual environment already exists.
    )
    
    echo.
    echo === Step 2: Virtual environment activated ===
    
    echo.
    
    :: Step 3: Show Python path
    echo === Step 3: Current Python path ===
    where python
    
    echo.
    
    :: Step 4: Check pip.exe
    echo === Step 4: Checking pip.exe ===
    if exist ".venv\Scripts\pip.exe" (
        echo pip.exe already exists.
    ) else (
        echo pip.exe not found. Installing with ensurepip...
        python -m ensurepip --upgrade
    )
    
    echo.
    
    :: Step 5: Copy pip3.exe if needed
    echo === Step 5: Check again, copy pip3.exe if needed ===
    if not exist ".venv\Scripts\pip.exe" (
        if exist ".venv\Scripts\pip3.exe" (
            echo Copying pip3.exe to pip.exe...
            copy /Y ".venv\Scripts\pip3.exe" ".venv\Scripts\pip.exe" >nul
        ) else (
            echo pip3.exe not found. Cannot create pip.exe.
        )
    ) else (
        echo pip.exe confirmed present.
    )
    
    echo.
    
    :: Step 6: Show pip info
    echo === Step 6: pip path and version ===
    where pip
    pip --version
    
    echo.
    
    echo == Double Check ==
    echo 1. Current Python path:
    for /f "delims=" %%i in ('where python') do (
        echo %%i
        goto :done1
    )
    :done1
    
    echo.
    echo 2. Checking pip.exe:
    if exist ".venv\Scripts\pip.exe" (
        echo pip.exe exists
    ) else (
        echo pip.exe not found
    )
    
    echo.
    echo 3. pip path:
    for /f "delims=" %%i in ('where pip') do (
        echo %%i
        goto :done2
    )
    :done2
    
    echo.
    cmd /k
    

    cmd /k是停留在当前页面,便于后续操作。

    作者:让我安静会

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python与VSCode光标协同:利用uv快速创建独立虚拟环境,轻松管理项目环境

    发表回复