从Shell文件启动时Python脚本无法运行,但从终端启动时正常

4 投票
1 回答
864 浏览
提问于 2025-04-16 04:18

如果我从终端启动Google Code上传的Python脚本,它能正常工作,但当我在一个Bourne Shell脚本文件中用下面的代码启动它时,就会出现错误:“close failed in file object destructor: Error in sys.excepthook: Original exception was:”。

#!/bin/sh
BUILD_FOLDER="/Users/James/Documents/Xcode Projects/Uber Sweep - Mac/build/Release & Package"

if [ -f "$BUILD_FOLDER/Uber Sweep (64 bit).zip" ]; then
python /Users/James/Scripts/Google\ Code\ Upload.py -s "Uber Sweep - Mac OS X (64 bit)" -p "uber-sweep" -u "EXCLUDED" -l "Featured,Type-Archive,OpSys-OSX" "$BUILD_FOLDER/Uber Sweep (64 bit).zip" | echo
fi

这是为什么呢?

谢谢你的帮助,
jrtc27

1 个回答

1

echo 这个命令不会从标准输入(stdin)接收任何东西,所以它只是在输出一个空行。你的脚本输出的内容应该能直接显示出来,不需要做其他操作。

试着指定完整的 python 路径。脚本运行时的 PATH 可能和你在命令行中使用时的 PATH 不一样。

你可以用引号把你的 Python 脚本名称括起来,这样就不用担心空格的问题了。

撰写回答