假设我的脚本/tmp/printy.py只包含:
#! /usr/bin/python2.7
print "hello world"
为什么这样做:
chmod +x /tmp/printy.py
export PATH=$PATH:/tmp/
printy.py
但这并不是:
chmod +x /tmp/printy.py
export PATH=$PATH:/tmp/
python printy.py
还有什么可以添加到一个cron作业中,该作业应该使用特定的解释器运行printy.py,以使其有效?
很可能重复,但我找不到任何内容,也许我使用了错误的搜索字词?
答案 0 :(得分:2)
shell中的路径查找仅适用于命令,而不适用于任意文件。在第一个示例中,printy.py
是命令名称。在第二个中,它只是Python的一个参数,而Python并没有使用PATH
来查找要运行的脚本;它希望printy.py
位于当前的工作目录中。
您可以使用PYTHONPATH
和-m
的组合来模拟:
PYTHONPATH=$PATH python -m printy