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

Python 3.9中跨文件使用context vars遇导入错误,如何解决?

问题分析与解决

这个错误和contextvars的使用逻辑无关,是相对导入的使用场景错误导致的。当你直接运行b.py作为顶层脚本时,Python不会将其识别为某个包的一部分,因此无法解析.开头的相对导入语法。

解决方法

方法1:将文件作为Python包运行

  1. 在a.py和b.py所在的目录下创建一个空的__init__.py文件,让Python将该目录识别为一个包(假设包名为my_package)。
  2. 回到该包的上级目录,执行以下命令运行b.py:
python -m my_package.b

方法2:改用绝对导入

直接修改b.py的导入语句,去掉相对导入的.:

from a import cntx

print(cntx.get())

确保a.py和b.py在同一目录下,直接运行b.py即可。

关于contextvars的说明

你定义contextvars的方式是正确的,只要导入问题解决后,后续可以正常使用cntx.set()设置值,在同一上下文(如同一线程、异步任务上下文)中用cntx.get()获取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:20:29