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

已安装并导入requests库调用时仍报NameError未定义如何解决

解决方案
  • 检查单元格运行顺序:Jupyter的执行顺序以你点击运行的先后为准,而非单元格从上到下的排列顺序。对比导入语句所在单元格和业务代码所在单元格左侧In[]中的数字,若导入单元格的数字更大,说明你先运行了业务代码、后运行的导入语句。你可以重启内核后,先执行导入语句所在单元格,确认无报错后再执行业务代码单元格。
  • 检查当前内核是否匹配安装requests的环境:很多时候本地存在多个Python虚拟环境,你安装requests的环境和Jupyter当前运行的内核不是同一个。可以单独新建一个单元格,运行import requests;print(requests.__version__),如果执行报错,就说明当前内核没有安装requests,切换到对应安装了requests的虚拟环境内核即可。
  • 检查是否存在命名冲突:如果你之前定义过名为requests的变量、函数或者同名的.py文件,会覆盖掉导入的requests库。你可以在导入语句后运行print(type(requests)),如果输出不是<class 'module'>,就说明出现了命名覆盖,删掉重名的变量/文件,重启内核即可。
  • 临时规避方案:可以直接在业务代码所在单元格的第一行补充需要的导入语句,避免作用域异常问题,修改后的业务代码如下:
import requests
from io import BytesIO
from scipy.io import wavfile

def loadSound(url):
    R = requests.get(url)
    rate, data = wavfile.read(BytesIO(R.content))
    data = data * 1.0 / (abs(data).max())
    if len(data.shape) > 1:  # 针对立体声数据,仅使用第一个声道
        data = data[:,0]
    return data, rate

# wav文件的URL地址
urls = ["http://cd.textfiles.com/sbsw/INSTRMNT/TENORSA.WAV",
       "https://static.wixstatic.com/mp3/61e4ba_e696e98e0c5a466bb1537bdc3e0fc3b3.wav"]
sounds = []
for url in urls:
    sound, rate = loadSound(url)
    sounds.append((sound, rate))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:15:01