WSL启动Airflow webserver报PermissionError: [Errno 1] Operation not permitted求助
报错核心原因
你将Apache Airflow的工作目录AIRFLOW_HOME设置在了WSL挂载的Windows NTFS分区路径/mnt/f/airflow下,WSL默认挂载的Windows分区不支持Linux原生的chmod权限修改操作,因此gunicorn进程尝试调整pid文件权限时触发了权限错误。
解决方案
方案一(最优推荐):将Airflow工作目录迁移到WSL本地Linux文件系统
- 在WSL用户目录下创建专属Airflow工作目录:
mkdir ~/airflow - 修改
AIRFLOW_HOME环境变量指向新目录,永久生效可将以下命令写入~/.bashrc(或~/.zshrc,依你使用的shell决定):export AIRFLOW_HOME=~/airflow - 执行
source ~/.bashrc让环境变量立即生效 - 重新初始化Airflow数据库:
airflow db init - 重新启动Airflow webserver即可正常运行:
airflow webserver -p 8080
方案二(确需保留工作目录在Windows分区时使用):修改WSL挂载配置支持NTFS分区权限操作
- 编辑WSL配置文件:
sudo nano /etc/wsl.conf - 写入以下配置内容后保存退出:
[automount] options = "metadata,umask=22,fmask=11" mountFsTab = false - 回到Windows系统的命令提示符/ Powershell中执行以下命令重启WSL:
wsl --shutdown - 重新打开WSL后删除旧的残留pid文件:
rm /mnt/f/airflow/airflow-webserver.pid - 重新启动Airflow webserver即可。
内容的提问来源于stack exchange,提问作者Thadeu Melo
相关产品推荐
相关产品推荐

