【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` 即可。

相关推荐
用户03321266636711 分钟前
Python 实用技巧:从零自主生成结构化 PDF 页面
python
benchmark_cc13 分钟前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash
计算机编程指导师26 分钟前
计算机毕设选题推荐:Hadoop大数据下的个体肥胖健康风险评估与可视化系统源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·肥胖健康风险
code2cat29 分钟前
【随笔】MCP输入Schema:把参数错误拦在工具执行之前
python·json schema·ai agent·mcp
计算机编程指导师41 分钟前
Python大数据毕设怎么写?Django结合Hadoop+Spark京东销售分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·京东商品
合尘猫1 小时前
AI 项目上线就停:一次事件循环阻塞的完整排查过程
人工智能·后端·python
染指11101 小时前
142.Agent-多Agent框架-通过Skills实现多Agent
开发语言·人工智能·python·langchain·agents
天国梦1 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python
Smoothcloud润云1 小时前
PyTorch推理请求超时与取消处理实战
人工智能·pytorch·python·深度学习·机器学习·gpu算力·gpu
敲代码的乔帮主2 小时前
Python 3 现代类型标注入门
开发语言·python