You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyCharm中正确配置环境变量解决单元测试os.environ KeyError

Python单元测试os.environ[] KeyError问题(MacBook Pro M2 + PyCharm)

在MacBook Pro M2设备上使用PyCharm运行Python项目单元测试时,连日来频繁遇到os.environ[]触发KeyError的问题:

  • 内置Terminal中可正常访问环境变量,直接启动Python测试os.environ也正常
  • 但运行或调试单元测试时,就会触发KeyError

已尝试以下操作:

  • 进入Run>Edit Configurations添加环境变量
  • 进入Settings>Build,Execution,Deployment>Console>Python Console添加环境变量
  • 进入Tools>Terminal配置环境变量

目前临时解决方法是为每个单独测试添加EnvFile配置!发现只有指定具体文件名/函数时,Run>Edit Configurations的配置才生效,针对整个测试文件夹创建的运行配置完全没有作用。

以下是我的config.xml文件内容:

<component name="ProjectRunConfigurationManager">  
  <configuration default="false" name="Unittests in tests/unit" type="tests" factoryName="Unittests">
    <module name="smde_refactor" />
    <option name="INTERPRETER_OPTIONS" value="" />
    <option name="PARENT_ENVS" value="true" />
    <option name="SDK_HOME" value="$PROJECT_DIR$/venv/bin/python" />
    <option name="SDK_NAME" value="Python 3.10 (smde_refactor)" />
    <option name="WORKING_DIRECTORY" value="" />
    <option name="IS_MODULE_SDK" value="false" />
    <option name="ADD_CONTENT_ROOTS" value="true" />
    <option name="ADD_SOURCE_ROOTS" value="true" />
    <EXTENSION ID="net.ashald.envfile">
      <option name="IS_ENABLED" value="true" />
      <option name="IS_SUBST" value="false" />
      <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
      <option name="IS_IGNORE_MISSING_FILES" value="false" />
      <option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
      <ENTRIES>
        <ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
        <ENTRY IS_ENABLED="true" PARSER="env" IS_EXECUTABLE="false" PATH="tests/unit/environment.env" />
      </ENTRIES>
    </EXTENSION>
    <option name="_new_pattern" value="&quot;&quot;" />
    <option name="_new_additionalArguments" value="&quot;&quot;" />
    <option name="_new_target" value="&quot;$PROJECT_DIR$/tests/unit&quot;" />
    <option name="_new_targetType" value="&quot;PATH&quot;" />
    <method v="2" />
  </configuration>
</component>

我知道这是文件夹而非脚本,但即使选择了具体脚本,其中的测试函数仍无法获取环境变量。将.py脚本整体运行时(已在运行配置中添加环境变量)能成功获取os.environ,但单独运行脚本内的测试时均失败,无法获取环境变量。恳请帮助!

内容的提问来源于stack exchange,提问作者doublea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:25:49