Python3.10环境启动Airflow 2.2.0 webserver报错如何用setuptools解决
解决方法
1. 修复distutils弃用警告(通过setuptools替换)
- 首先升级setuptools到最新版本:
pip install --upgrade setuptools
- 找到报错中提到的
airflow/configuration.py文件,定位到第270行的导入语句:
from distutils.version import StrictVersion
替换为setuptools提供的等效导入:
from setuptools.version import StrictVersion
即可消除distutils的弃用警告。
2. 修复No module named 'pwd'报错
该报错不属于setuptools替换范畴,是Windows平台兼容性问题:pwd是类Unix系统专属的用户信息模块,Windows原生环境不存在该模块,Airflow官方也不支持直接在Windows原生环境运行。可选择以下两种方案解决:
- 方案一(推荐,稳定性最高):安装WSL2 Linux子系统,在子系统环境中安装Python、Airflow并启动服务,完全规避Windows平台兼容性问题
- 方案二(临时兼容,仅用于测试):
- 执行命令安装Windows系统API依赖:
pip install pywin32- 在Python安装路径的
Lib目录下新建pwd.py文件,写入模拟代码:
import os import win32api def getpwuid(uid): class PwStruct: pw_name = win32api.GetUserName() pw_dir = os.path.expanduser("~") return PwStruct() def getpwnam(name): return getpwuid(0)
额外兼容性提示
Airflow 2.2.0官方最高仅支持Python 3.9,和Python 3.10存在多处不兼容。若后续还有其他报错,建议降级Python到3.8/3.9版本,或升级Airflow到2.3及以上版本(官方首次支持Python 3.10的版本)。
内容的提问来源于stack exchange,提问作者Rand Abu Salim
相关产品推荐
相关产品推荐

