2016-07-15 122 views
0

我在共享主机(bluehost)上运行我的python脚本时遇到问题,并且在其他SO线程的帮助下,我能够设置PYTHONPATH并运行脚本而没有任何问题。在共享主机中为cron作业设置PYTHONPATH

现在我需要通过cron作业运行脚本。共享主机环境中的cron作业只是我可以调用脚本的一行,但在调用脚本之前无法弄清楚如何设置PYTHONPATH。

例子:

python /path/to/my/script.py 

我相信这个问题应该是共同的,但我找不到其他线程任何回答。

任何想法如何为cron作业设置PYTHONPATH?

此外,代码库是在本地环境中开发的,服务器通过git pull获取副本。所以我的首选解决方案不是更改服务器的源代码。可以从调用主脚本的cron作业调用另一个脚本,并在其中设置变量,但更改主要脚本我宁愿不发生,以便我不需要维护两个版本的代码,一个是本地代码,一个是for服务器。

回答

5

更改您的cron作业以运行shell脚本。在shell脚本中,设置PYTHONPATH,然后调用python程序。

您的cron作业更改为这样的:my_shell_script.sh

/path/to/my_shell_script.sh 

内容:

export PYTHONPATH=something 
python /path/to/py/python/program.py 

如果你不希望有一个独立的shell脚本,你可以将它全部入的cron虽然它可以变得很长:

PYTHONPATH=something python /path/to/py/python/program.py 
+0

也可以直接在crontab文件中设置该变量,它会得到注入工作所在的环境中。 – reptilicus

+0

@reptilicus与共享主机是否仍然可以访问crontab文件?现在我所能看到的只是从cPanel创建单行cron。 – apadana