使用PyCharm运行按钮时getenv()返回None的解决方法咨询
问题解决:PyCharm运行pytest时getenv返回None的处理方案
问题根源
PyCharm通过运行按钮执行pytest时,工作目录和你在命令行执行pytest时不一致,导致代码里用相对路径"config/.env"找不到.env文件,load_dotenv加载失败,自然getenv返回None。
解决办法
1. 改用绝对路径加载.env文件
不管运行时的工作目录是什么,用绝对路径定位.env文件就能保证加载成功。有两种写法:
- 用os.path模块:
from dotenv import load_dotenv from os import getenv, path # 获取当前脚本的绝对目录 current_script_dir = path.dirname(path.abspath(__file__)) # 拼接.env文件的绝对路径 env_file_path = path.join(current_script_dir, "config/.env") load_dotenv(env_file_path) - 用pathlib模块(更简洁):
from dotenv import load_dotenv from os import getenv from pathlib import Path env_file_path = Path(__file__).parent / "config/.env" load_dotenv(env_file_path)
2. 修改PyCharm运行配置的工作目录
把PyCharm的pytest运行工作目录改成你命令行执行时的项目根目录:
- 点击PyCharm右上角的运行配置下拉框,选择"Edit Configurations..."
- 在左侧找到对应的pytest配置项
- 在右侧"Working directory"栏,点击文件夹图标,选择你的项目根目录
- 保存配置后重新运行pytest
3. 直接在PyCharm运行配置中添加环境变量
如果不想改代码,也可以直接在运行配置里导入.env的内容:
- 打开Run/Debug Configurations,找到目标pytest配置
- 找到"Environment variables"选项,点击右侧的编辑按钮(铅笔图标)
- 在弹出的窗口中,点击左上角的"Load environment variables from file"按钮,选择你的
config/.env文件 - 保存后运行即可
内容的提问来源于stack exchange,提问作者tonitone120
相关产品推荐
相关产品推荐

