NLTK 代理凭据:核对 set_proxy 签名
让 set_proxy 与已安装的 NLTK 签名保持一致,并留意其 urllib opener 的作用范围。
对于使用单独的 proxy、user 和 password 参数的实现:
import getpass
import nltk
proxy_user = input("Proxy username: ")
proxy_password = getpass.getpass("Proxy password: ")
nltk.set_proxy(
"http://proxy.example.net:8080",
user=proxy_user,
password=proxy_password,
)
nltk.download("punkt")在套用旧的 tuple 或 URL 登录示例之前,请先核对该程序所用 NLTK 版本中的签名。终点是代理本身,而不是 NLTK 数据索引;punkt 只是示例资源,应替换为应用实际需要的包。
set_proxy 会安装一个带代理处理器的 urllib opener,在提供凭据时还会安装代理认证处理器。它不会配置 Requests、HTTPX、任意套接字或每一个子进程。
反复出现的认证挑战需要把服务要求的方案与可用的处理器进行比对。提供正确的参数并不会补上所有企业认证方式。
如果传输成功但 NLTK 找不到数据,应把它的搜索路径和包布局当作单独的本地数据问题来排查。手动下载可能是有意的部署选择;它既不能证明调用签名无效,也不能解释尚未解决的代理错误。请勿把凭据写进已提交的脚本或复制到 URL 中。