1. **无法解析导入 "dotenv"** - 缺少 `python-dotenv` 包
2. **无法解析导入 "dingtalk_stream"** - 缺少钉钉流式SDK
3. **Python解释器版本不一致** - VS Code使用的是 Python 3.13.3,但可能包安装在了不同的环境
## 解决方案
### 1. 确认当前Python环境和包管理器
```bash
# 检查当前使用的Python版本和路径
which python3
python3 --version
# 检查poetry是否在正确的Python环境
poetry env info
```
### 2. 安装缺失的依赖包
```bash
# 使用poetry安装缺失的包
poetry add python-dotenv
poetry add dingtalk-stream
# 或者如果已经有pyproject.toml,直接安装所有依赖
poetry install
```
### 3. 确保VS Code使用正确的Python解释器
在VS Code中:
1. 按 `Cmd+Shift+P` (macOS)
2. 输入 "Python: Select Interpreter"
3. 选择poetry创建的虚拟环境解释器
```bash
# 查看poetry虚拟环境路径
poetry env info --path
# 激活poetry虚拟环境
poetry shell
```
### 4. 检查pyproject.toml配置
确保你的 `pyproject.toml` 包含必要的依赖:
```toml
[tool.poetry.dependencies]
python = "^3.9"
python-dotenv = "^1.0.0"
dingtalk-stream = "^0.9.0"
# 其他依赖...
[tool.poetry.group.dev.dependencies]
# 开发依赖...
```
### 5. 重新安装和激活环境
```bash
# 删除现有虚拟环境(如果需要)
poetry env remove python
# 重新创建虚拟环境
poetry install
# 激活虚拟环境
poetry shell
# 验证包安装
python -c "import dotenv; import dingtalk_stream; print('导入成功')"
```
### 6. VS Code工作区设置
在项目根目录创建 `.vscode/settings.json`:
```json
{
"python.defaultInterpreterPath": "./venv/bin/python",
"python.terminal.activateEnvironment": true
}
```
### 7. 如果仍有问题,尝试手动指定解释器
```bash
# 获取poetry虚拟环境的Python路径
poetry run which python
# 在VS Code中手动输入这个路径作为解释器
```
## 验证步骤
1. **重启VS Code** - 让解释器设置生效
2. **检查导入** - 确认红色波浪线消失
3. **运行测试** - 尝试运行一个简单的导入测试
```python
# test_imports.py
try:
from dotenv import load_dotenv
from dingtalk_stream import DingTalkStreamClient
print("✅ 所有导入成功")
except ImportError as e:
print(f"❌ 导入失败: {e}")
```
## 常见原因
这种问题通常是因为:
- Poetry安装包到了虚拟环境,但VS Code使用的是系统Python
- 多个Python版本共存导致的路径混乱
- VS Code没有正确识别poetry创建的虚拟环境