我在使用 UNIX 的 OSX 机器上。我有一个 Python 程序,我想每隔一小时左右运行一次,所以我在我的编辑器中设置了一个基本的 cron 命令:
0 * * * * python Documents/workspace/programfolder/src/ProgramToRun.py
我还没有真正尝试过这个,因为我已经遇到了问题。我试图从我的主目录运行 python Documents/workspace/programfolder/src/ProgramToRun.py 命令,但脚本无法在其依赖的目录中找到任何文件.就好像该程序以某种方式在我的主目录中运行并且找不到它的任何依赖项。如果我 cd 进入程序所在的文件夹并执行 python ProgramToRun.py,它工作正常。所以我的问题是如何让 cron 像我从它的目录运行它一样对待这个程序?我给出的目录是否可以工作,或者我是否需要提供更绝对的东西,比如/Users/MyName...等等?
请您参考如下方法:
您可以通过以下两种方式之一进行此操作:
第一种方式:
cd 进入包含 python 脚本和依赖项的目录并从那里运行它,如下所示:
(cd /Users/username/Documents/workspace/programfolder/src/ && python ProgramToRun.py)
在这里,parens 调用了一个“subshell”。可以把它想象成一个连续的 session ,所有命令都在其中运行。 && 的功能与; 相同,但如果上一个命令失败则不执行下一个命令
第二种方式:
将Documents/workspace/programfolder/src/添加到ProgramToRun.py里面的PYTHONPATH中,如下:
import sys
sys.path.append("/Users/username/Documents/workspace/programfolder/src/")
希望对你有帮助
