前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >crontab执行python脚本提示ImportError解决方法

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

作者头像
行 者
发布2018-03-26 15:45:48
1.8K0
发布2018-03-26 15:45:48
举报
文章被收录于专栏:运维技术迷

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

报错信息

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

代码语言:javascript
复制
[root@uhadoop-mrdv2j-task1 data]# tailf /var/log/bigdata/run-hive-qz_yy_uv_source_2mysql.sh.log
	at com.alibaba.datax.core.util.ConfigParser.parse(ConfigParser.java:26)
	at com.alibaba.datax.core.Engine.entry(Engine.java:137)
	at com.alibaba.datax.core.Engine.main(Engine.java:204)
Caused by: java.io.FileNotFoundException: File '/data/datax/job/hive-qz_yy_uv_source-2mysql.json' does not exist
	at org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:299)
	at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1711)
	at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1748)
	at com.alibaba.datax.core.util.ConfigParser.getJobContent(ConfigParser.java:106)
	... 4 more
 
Traceback (most recent call last):
  File "/data/datax/bin/tool_hive2mysql_build_json.py", line 6, in <module>
    import argparse
ImportError: No module named argparse
 
DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2016, Alibaba Group. All Rights Reserved.
 
 
2017-11-24 10:28:02.649 [main] ERROR Engine - 

解决

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

代码语言:javascript
复制
>>> import argparse
>>> argparse.__file__  //查询argparse模块的位置
'/usr/local/lib/python2.7/argparse.pyc'

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

代码语言:javascript
复制
#!/usr/local/bin/python2.7
#coding:utf-8
import json
import sys
sys.path.append("/usr/local/lib/python2.7") //append一定要在报错模块之前
import argparse
.....
   coding
.....

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错信息
  • 解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档