Azure ML流水线运行失败:ImportError: cannot import name 'time_ns'求助
解决Azure ML流水线中pandarallel的导入错误问题
核心原因分析
你的Azure ML环境使用的是Python 3.6,而time_ns是Python 3.7及以上版本才新增的函数,新版本pandarallel会直接调用这个函数,导致在Python 3.6环境下报错。其他错误(如PlasmaStoreFull、ipywidgets缺失)则是依赖包版本不匹配或缺失导致的。
具体解决步骤
1. 指定兼容Python 3.6的pandarallel版本
选择明确支持Python 3.6的pandarallel版本,比如1.4.8或1.5.0(这两个版本不会调用time_ns)。在你的依赖yml文件中修改:
dependencies: - python=3.6 - pandarallel=1.4.8 # 其他依赖...
2. 解决PlasmaStoreFull错误
这个错误来自pyarrow版本不兼容,需要指定与pandarallel 1.4.8/1.5.0兼容的pyarrow版本(建议用0.16.0),添加到依赖中:
dependencies: - python=3.6 - pandarallel=1.4.8 - pyarrow=0.16.0 # 其他依赖...
3. 解决ipywidgets缺失错误
pandarallel的进度条功能依赖ipywidgets,要么直接添加该依赖,要么在代码中禁用进度条:
- 方式一:添加依赖到yml
dependencies: - python=3.6 - pandarallel=1.4.8 - pyarrow=0.16.0 - ipywidgets=7.5.1 # 其他依赖... - 方式二:代码中禁用进度条
在初始化pandarallel时添加参数:from pandarallel import pandarallel pandarallel.initialize(progress_bar=False)
4. 备选方案:升级Python版本
如果Azure ML环境允许,将Python版本升级到3.7及以上,这样可以使用较新的pandarallel版本(如1.6.4),从根源避免time_ns的兼容问题。修改yml中的python版本:
dependencies: - python=3.8 - pandarallel=1.6.4 # 其他依赖...
内容的提问来源于stack exchange,提问作者Karthik S
相关产品推荐
相关产品推荐

