【PyCharm】让 PyCharm 使用 .venv 虚拟环境

问题分析

PyCharm 运行项目时,会使用你在 Run Configuration 中配置的 Python 解释器。而当你通过 Git Bash 执行 /**-start.sh 运行脚本时,该脚本会在内部自动创建并使用 .venv 虚拟环境,并安装所有必要的依赖包。

这是两个完全不同的 Python 环境

环境 解释器路径 依赖包位置 依赖状态
脚本启动 `backend/.venv/Scripts/python.exe` `backend/.venv/Lib/site-packages`
PyCharm 运行 `D:\anaconda3\python.exe` `D:\anaconda3\Lib\site-packages`

解决方案:让 PyCharm 使用 `.venv` 虚拟环境

步骤 1:先在终端创建并安装依赖

打开 "Git Bash" 或 "PyCharm Terminal",执行:

复制代码
cd backend

# 如果 .venv 不存在,创建它
python -m venv .venv

# 激活虚拟环境
# Windows Git Bash:
source .venv/Scripts/activate
# 或 Windows CMD/PowerShell:
.venv\Scripts\activate

# 安装所有依赖
pip install -r requirements.txt

步骤 2:在 PyCharm 中配置使用 .venv

1. 打开 PyCharm 设置

  • `File` → `Settings`(或 `Ctrl + Alt + S`)

2. 进入 Python 解释器配置

  • `Project: smart-printing-agent` → `Python Interpreter`

3. 添加现有虚拟环境

  • 点击右上角齿轮 ⚙️ 图标 → `Add`

  • 选择 `Existing environment`

  • Interpreter 路径选择:`backend\.venv\Scripts\python.exe`

  • 点击 `OK`

4. 确认依赖包

  • 此时你应该能看到 `.venv` 中已安装的所有依赖包列表

5. 编辑 Run Configuration

  • 点击 PyCharm 顶部工具栏的运行配置下拉菜单 → `Edit Configurations`

  • 确保选中的 Python interpreter 是 `backend\.venv\Scripts\python.exe`

  • 确保 Working directory 是 `backend`

步骤 3:验证

配置完成后,PyCharm 右下角应该显示 `Python 3.12 (.venv)` 或类似的虚拟环境名称。

再次点击运行按钮,就不会再报依赖缺失了。

补充:如果 .venv 不存在

如果你的 `scripts/start-dev-all.sh` 之前已经创建了 `.venv`,但在 PyCharm 中看不到,可能是因为:

1. `.venv` 在 `backend/` 目录下(不在项目根目录)

2. PyCharm 项目根目录设置不同

检查一下 `backend/` 目录下是否存在 `.venv` 文件夹:

bash 复制代码
ls backend\.venv

如果存在,直接在 PyCharm 中指向 `backend\.venv\Scripts\python.exe` 即可。

相关推荐
IvanCodes13 分钟前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
Patrick在香港1 小时前
Claude 工具调用返回空:8 次失败里只有 1 次状态码不对,其余全带 200
爬虫·python·api·claude·香港
Web3&Basketball1 小时前
CRM Agent 后训练实战:3 倍更少错误
python·架构·大模型·agent·推理
AIFQuant2 小时前
ETF行情API接入踩坑记:从报错到跑通的七个问题
python·金融·区块链·etf·基金
GPU实战笔记4 小时前
云端 Python 开发:JupyterLab 还是 VS Code Remote-SSH?
python·vs code·jupyterlab·remote-ssh·远程开发
2501_915918414 小时前
iOS编程用什么软件好?主流工具Xcode、AppCode、CodeRunner与新兴快蝎对比
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
狗狗狗狗狗乐啊4 小时前
搭一个 AI 对话工作台 AChat:从 0 到可用的完整记录(一)
python·react.js·ai编程
白猫不黑5 小时前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
kuuailetianzi5 小时前
Python初识:定位、优势与发展历程
python
guoran_shini5 小时前
LLM微调-训练垂类问答模型
python·lora·sft