Windows下编写Shell包装脚本运行Python文件报错求助
解决Shell包装脚本在Windows下的换行符错误问题
错误原因
你遇到的/usr/bin/env: ‘python3 ’: No such file or directory错误,核心是脚本换行格式不兼容。Windows下编辑的文件默认用CRLF(回车+换行)换行,而Git Bash、WSL这类类Unix终端只识别LF(换行)换行。脚本第一行的#!/usr/bin/env python3末尾被附加了CR字符(即错误里的 ),导致系统把python3 当成完整命令名,自然找不到对应程序。
解决步骤
- 修正脚本换行格式
- 用VS Code打开脚本,点击右下角状态栏的「CRLF」,切换为「LF」后保存。
- 或者在Git Bash中执行命令批量移除CR字符:
sed -i 's/\r$//' dag
- 优化包装脚本逻辑(更合理的写法)
你的包装脚本没必要用Python解释器嵌套调用Python,直接改成Shell脚本更合适:#!/usr/bin/env bash python3 -u index.py "$@" - 重新执行验证
修改完成后,再次运行./dag即可正常执行Python脚本。
注意事项
在Windows环境使用类Unix终端时,务必注意脚本的换行格式,CRLF换行会引发这类容易被忽略的隐性错误。
内容的提问来源于stack exchange,提问作者asusrid
相关产品推荐
相关产品推荐

