使用AzureBlobFileSystem访问Azure Blob Storage遇导入错误
解决adlfs库导入AzureBlobFileSystem时的循环导入错误
我尝试在Python中使用adlfs库的AzureBlobFileSystem将Azure Blob Storage作为文件系统访问,但遇到了导入错误。
已执行的安装操作
安装依赖的命令:
pip install azure-storage-blob adlfs
使用的代码
import fsspec from adlfs import AzureBlobFileSystem abfs = AzureBlobFileSystem(account_name=account_name,account_key="")
遇到的错误
运行代码时抛出以下错误:
from adlfs import AzureBlobFileSystem
ImportError: cannot import name 'AzureBlobFileSystem' from partially initialized module 'adlfs' (most likely due to a circular import)
已尝试的排查步骤
- 确认存储账户名称和密钥正确
- 确保azure-storage-blob和adlfs已安装并为最新版本
- 检查网络连接,确认可访问存储账户
环境详情
- 编辑器:Mac OS上的VS code
- Python版本:3.13.0
- adlfs版本:2024.7.0
- azure-storage-blob版本:12.23.1
解决建议
- 检查脚本文件名:如果你的脚本文件名为
adlfs.py,会和库名冲突导致循环导入。立即重命名脚本(比如azure_blob_test.py),同时删除同目录下的adlfs.pyc或__pycache__文件夹。 - 改用fsspec间接初始化:绕过直接导入的方式,用fsspec的接口创建文件系统实例:
import fsspec abfs = fsspec.filesystem('az', account_name=account_name, account_key="") - 降级Python版本:Python 3.13属于较新的版本,可能和当前adlfs版本存在兼容性问题。尝试降级到Python 3.12.x,重新安装依赖后测试。
- 创建隔离虚拟环境:当前环境可能存在依赖冲突,创建全新虚拟环境隔离依赖:
在虚拟环境中运行脚本验证是否解决问题。python -m venv azure_env source azure_env/bin/activate # MacOS/Linux系统执行 pip install azure-storage-blob adlfs
内容的提问来源于stack exchange,提问作者madhavink14
相关产品推荐
相关产品推荐

