Crontab执行python文件环境不一致问题
问题描述:对于一个python 文件,在linux环境该文件夹下手动输入执行命令正常输出,而使用crontab命令执行命令就不能正常输出,会报错缺失部分module
一.手动输入
python test.py
可以运行 有结果输出
二.crontab定时命令执行命令
*/1 * * * * python test.py #代表每分钟执行一次test.py
反而不能正常输出!
问题原因:
- 用户输入python执行命令,使用的是 /usr/local/bin/python 中的环境
- 而crontab作为系统定时命令,执行python命令时,使用的是/usr/bin/python 中的环境
/usr/local 用户级的目录。
/usr/ 系统级的目录
故导致同样的执行命令,一个报错,一个不报错
问题解决办法
解决这个问题很简单,只需要通过以下命令创建一个软连接
ln -s /usr/local/bin/python /usr/bin/python
如果出现报错提示 ln: creating symbolic link `/usr/bin/python’: File exists
则需要把原来的/usr/bin/python 通过以下命令备份一下
mv /usr/bin/python /usr/bin/python_backup