调用BlobServiceClient.from_connection_string报NoneType无rstrip属性错误
报错根因
你遇到的AttributeError: 'NoneType' object has no attribute 'rstrip'错误,核心原因是os.getenv('AZURE_STORAGE_CONNECTION_STRING')读取到的结果为空,程序尝试对空对象执行字符串操作导致报错。
排查解决步骤
- 第一步:验证环境变量配置
Mac环境的环境变量分生效范围,你可以先在运行代码的终端执行命令echo $AZURE_STORAGE_CONNECTION_STRING,确认是否能输出正确的连接字符串:- 如果你是临时在终端export的变量,关闭终端后就会失效,IDE运行时默认也不会继承临时终端的环境变量
- 要永久生效的话,根据你使用的shell类型,将
export AZURE_STORAGE_CONNECTION_STRING="你的存储账户连接串"写入~/.zshrc(zsh)或者~/.bash_profile(bash),写完执行source 对应配置文件路径让配置立刻生效 - 如果使用PyCharm、VSCode等IDE运行代码,需要在IDE的运行配置面板中手动添加该环境变量,IDE默认不会读取系统全局环境变量
- 第二步:代码添加空值校验
读取环境变量后增加合法性判断,避免空值传递导致后续报错,示例代码如下:connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING') if not connect_str: raise ValueError("未读取到AZURE_STORAGE_CONNECTION_STRING环境变量,请检查配置") - 第三步:清理冲突依赖包
你当前安装的azure-storage 0.36.0是Azure存储的旧版遗留SDK,和你使用的azure-storage-blob 12.9.0新版SDK存在冲突,执行以下命令卸载旧包即可:
卸载完成后重新运行代码测试即可。pip uninstall azure-storage -y
内容的提问来源于stack exchange,提问作者Tal_87_il
相关产品推荐
相关产品推荐

