记录平凡生活,关注互联网,专注Linux运维技术.

crontab执行python脚本提示ImportError解决方法

早上看到hadoop的计算结果没有进入到mysql数据库,查看关于hadoop计划任务的输出日志发现有报错信息。果断拿来手动执行相关的python脚本,并没有错误,然后丢到计划任务里面就报错,折腾了我一上午终于搞好了。

报错信息

报错执行/data/datax/bin/tool_hive2mysql_build_json.py脚本的时候ImportError

解决

经过google、baidu得知,crontab执行出错(或者不执行计划任务)90%的错误都是环境变量引起的。此次问题的原因是crontab本身的环境变量中找不到python的argparse模块,所以就抛出ImportError。我的解决方法是在python脚本中添加相关模块的路径到$PYTHONPATH中。
1.查询模块的位置

2.在脚本中将模块的路径append到PYTHONPATH中

参考资料:http://blog.csdn.net/rj03hou/article/details/5709276

点赞
  1. FRoZen说道:

    我试过你的方法,还是不行报错ImportError。

    我Mac原本有Python,后来我从官网又下载了2.7.14。

    Shell:
    >>> import MySQLdb
    >>> MySQLdb.__file__
    '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-macosx-10.6-intel.egg/MySQLdb/__init__.pyc'

    代码:
    import sys
    sys.path.append("/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-macosx-10.6-intel.egg/MySQLdb")
    import MySQLdb

    请问有什么地方不对吗?

发表评论

电子邮件地址不会被公开。 必填项已用*标注