Django报错ModuleNotFoundError: No module named 'dotenv'求助
Django ModuleNotFoundError: No module named 'dotenv' 解决方案
排查步骤及解决方法
1. 确认虚拟环境激活状态
报错显示项目使用的是C:\PythonProjects\VoterSay7\venv虚拟环境,若终端未激活该环境,包会被安装到全局Python而非项目虚拟环境中。
- Windows系统激活虚拟环境:
C:\PythonProjects\VoterSay7\venv\Scripts\activate - 激活后重新安装依赖:
pip install python-dotenv
2. 修正导入语句
python-dotenv的正确使用无需单独导入dotenv模块,直接导入load_dotenv即可,修改settings.py中的代码:
# 删掉这行:import dotenv from dotenv import load_dotenv
3. 验证包安装路径
执行以下命令查看python-dotenv的安装路径:
pip show python-dotenv
检查输出的Location字段,确认路径指向项目虚拟环境的site-packages目录(如C:\PythonProjects\VoterSay7\venv\lib\site-packages)。如果路径不符,说明包安装到了全局环境,需激活虚拟环境后重新安装。
4. 完善.env文件加载流程
确保正确加载.env文件并读取变量,完整示例代码:
from dotenv import load_dotenv import os # 定位到项目根目录下的.env文件(与manage.py同层级) env_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.env') load_dotenv(env_path) # 使用环境变量 EMAIL_HOST_PASSWORD = os.getenv('EMAIL_PASSWORD')
5. 确认.env文件位置
将.env文件放置在项目根目录(即manage.py所在的文件夹),避免路径错误导致无法加载。
内容的提问来源于stack exchange,提问作者Condado
相关产品推荐
相关产品推荐

