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

运行Python代码报NameError: name 'bls' is not defined怎么办

错误产生原因

抛出NameError: name 'bls' is not defined的本质是:当前Python执行环境的作用域中,不存在名为bls的可用对象。
哪怕之前同个notebook里取其他数据集的逻辑能正常跑,触发这个错误的常见场景只有三类:

  • 重启过Jupyter/IPython内核、清空过所有变量状态后,直接跳转到当前单元格运行,之前负责导入BLS相关库、初始化bls客户端的代码单元格没有在当前会话中执行
  • 导入、初始化bls对象的代码本身存在拼写错误、依赖缺失问题,bls变量从一开始就没被成功创建
  • 单元格运行顺序错乱,调用bls.get_series()的单元格,比导入、初始化bls的单元格先执行
修复方案

按以下步骤操作即可解决:

  1. 先确认依赖已安装,在终端执行安装命令:
    pip install pandas bls
  2. 在你写的拉取工资数据的代码最开头,补上pandas和bls的导入语句,确保bls对象在被调用前已经完成初始化,补全后的完整可运行代码如下:
import pandas as pd
import bls

wages = bls.get_series('CIU2020000000000A') 
wages.to_csv('bls_wages_data_csv')
df = pd.read_csv('bls_wages_data_csv') 
df.columns = ['Date', 'Wages']
df.head()
  1. 运行时按照notebook单元格从上到下的顺序逐格执行,不要跳步,避免出现变量还没定义就被调用的问题。

如果你用的不是公开的bls第三方库,是自己封装的BLS API请求客户端,只要把初始化bls客户端的代码移动到调用get_series方法的代码之前运行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:06:27