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

Python中NameError: reqUrl未定义问题求助

Python代码出现NameError: name 'reqUrl' is not defined的解决方法

你的代码报错核心是变量作用域错误,同时还有两处拼写问题,具体修正方案如下:

错误原因

  1. reqUrl和reqHeaders定义在performRequestWithStreaming函数内部,属于局部变量,函数外部的代码无法访问这些变量
  2. 请求逻辑代码写在函数外部,但主入口调用的是空函数,实际请求代码根本没执行
  3. 存在两处拼写错误:maxtokens应为max_tokens(OpenAI API参数要求),reqbody应为reqBody(Python大小写敏感)

修正后的完整代码

import requests
import json
import sseclient

API_KEY = 'Hidden for reasons'

def performRequestWithStreaming():
    reqUrl = 'https://api.openai.com/v1/completions'
    reqHeaders = {
        'accept': 'text/event-stream',
        'authorization': 'bearer ' + API_KEY
    }
    reqBody = {
        "model": "text-davinci-003",
        "prompt": "what is python",
        "max_tokens": 100,
        "temperature": 0,
        "stream": True,
    }
    request = requests.post(reqUrl, stream=True, headers=reqHeaders, json=reqBody)
    client = sseclient.SSEClient(request)
    for event in client.events():
        if event.data != 'DONE':
            print(json.loads(event.data)['choices'][0]['text'], end="", flush=True)

if __name__ == '__main__':
    performRequestWithStreaming()

关键修改说明

  • 将reqBody、请求发送、SSE处理的所有代码移到performRequestWithStreaming函数内部,确保所有变量在同一作用域内可访问
  • 修正maxtokens为max_tokens,符合OpenAI API的参数命名规范
  • 修正reqbody为reqBody,匹配变量定义的大小写

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:40:07