crontab中运行python程序出错,提示ImportError: No module named解决全过程
将一个python脚本放入crontab执行时,提示如下错:
ImportError: No module named hashlib
但是在shell中直接执行时没有任何问题,google之后,得到线索是PYTHONPATH的问题,PYTHONPATH会决定python查找lib的路径。
在服务器上面echo $PYTHONPATH的时候没有任何路径
继续调查发现最终影响的是sys.path
分别输出了两种场景中的sys.path
shell:
[root@ short_task]# python
Python 2.6.2 (r262:71600, Aug 7 2009, 18:39:16)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['', '/usr/local/lib/python2.6/site-packages/setuptools-0.6c5-py2.6.egg', '/usr/local/lib/python2.6/site-packages/MySQL_python-1.2.2-py2.6-linux-x86_64.egg', '/home/houjw/short_task', '/home/bonny/sqlLib', '/usr/local/lib/python26.zip', '/usr/local/lib/python2.6', '/usr/local/lib/python2.6/plat-linux2', '/usr/local/lib/python2.6/lib-tk', '/usr/local/lib/python2.6/lib-old', '/usr/local/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/site-packages']
crontab:
于是修改脚本,查看当脚本在crontab执行时的syspath是多少
[root@ short_task]# less get_email_hash.log
['/home/houjw/short_task', '/usr/lib64/python24.zip', '/usr/lib64/python2.4', '/usr/lib64/python2.4/plat-linux2', '/usr/lib64/python2.4/lib-tk', '/usr/lib64/python2.4/lib-dynloa
d', '/usr/lib64/python2.4/site-packages', '/usr/lib64/python2.4/site-packages/Numeric', '/usr/lib64/python2.4/site-packages/gtk-2.0', '/usr/lib/python2.4/site-packages']
Traceback (most recent call last):
File "/home/houjw/short_task/get_email_hash.py", line 7, in ?
import hashlib
ImportError: No module named hashlib
然后研究了一下sys.patch的生成方式:
A list of strings that specifies the search path for modules. Initialized from the environment variable PYTHONPATH, plus an installation-dependent default.
这个不仅与PYTHONPATH有关系,而且与installation-dependent default有关系,这个估计与python的安装有关系,而且通过上面的sys.path输出发现机器上安装了两个python2.4和2.6,说明crontab中用到的是2.4,而shell中用到的是2.6,hashlib正好是在2.5的时候加入python的,所以2.4就没有找到。
通过cat crontab发现crontab中的PATH变量首先发现的是2.4的python
于是问题就得到了解决,在crontab中使用/usr/loca/bin/python XXX.python而不是python XXX.python或者将XXX.python修改为可执行文件,在python头部#!/usr/local/bin/python
转载于:https://www.cnblogs.com/williamjie/p/9227793.html
crontab中运行python程序出错,提示ImportError: No module named解决全过程相关推荐
- python文本编辑器报错_notepad++编辑器中运行python程序时需要注意的编码格式
本篇文章给大家带来的内容是关于notepad++编辑器中运行python程序时需要注意的编码格式,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 语言:python3.4 文本编辑器: ...
- 【ZZ】Python安装模块出错(ImportError: No module named s...
2019独角兽企业重金招聘Python工程师标准>>> 在window平台下安装第三方模块时,出现这样的错误: Google了以下,才知道原来Python里少了这个模块. 我们可以在 ...
- Python安装模块出错(ImportError: No module named setuptools)解决方法
在window平台下安装第三方模块时,出现这样的错误: Google了以下,才知道原来Python里少了这个模块. 我们可以在Python官网去查找 其中 Package Index中查我们需要的模块 ...
- 使命召唤16计算机内存不足,电脑中运行使命召唤16提示出现一个问题如何解决...
近日有玩家在电脑中运行使命召唤16游戏的时候,突然遇到了提示出现一个问题的现象,导致无法继续游戏,这是怎么回事呢,可能是兼容性有问题,或者检查一下游戏文件的完整性,接下来给大家带来电脑中运行使命召唤1 ...
- java执行python提示import os找不到_java利用Jython调用python抛出错误ImportError: No module named odbchelper...
Python代码: import odbchelper def add(x, y): """ add method """ return x ...
- python 报错in module,Centos 7 python 编译报错 ImportError: No module named six 解决办法
本地编译Open vSwitch时报错Traceback (most recent call last): File "./ovsdb/ovsdb-idlc.in", line 8 ...
- python程序发布 ubuntu_在ubuntu16.04的虚拟环境中运行Python程序作为服务
我正在尝试让一个Flask+SocketIO应用程序作为一个服务在ubuntu16.04上运行,在一个虚拟环境中.我的服务器每天凌晨3点重新启动(超出我的控制范围),所以我需要它在启动时自动启动.在 ...
- 运行PHP程序时提示“Notice: Undefined index”的解决办法
最近在调试网站程序的时候,不知道怎么经常出现"Notice:Undefined index"的提示,程序又可以正常运行,就是看到这个提示感觉有点不爽,把模板搞乱了,经查其实这个不是 ...
- python3.5中import sqlite3报错:ImportError: No module named _sqlite3
原因:缺少相关库 解决方案: 1 安装相关库 yum install sqlite-devel 2 重新编译安装Python 转载于:https://www.cnblogs.com/MnCu826 ...
最新文章
- 英伟达颠覆CPU!Arm架构专为AI而生,性能超x86十倍
- python 读png的值变了_python – 为什么scipy.ndimage.io.imread返回PngImageFile,而不是值数组...
- 【codeforces 765F】 Souvenirs
- vue axios 跨域_SpringBoot+Vue从零开始搭建系统(三)前后端整合二
- map()和zip()操作
- [机器学习]超参数优化算法-SuccessiveHalving与Hyperband
- C#中用WebClient.UploadData 方法上载文件数据
- ubuntu 安装fcitx输入法(3.6和4.0bate)
- FastDFS分布式文件系统
- 思科交换机配置dhcp参数
- 波卡二层扩容协议Plasm Network已准备连接到即将推出的Rococo V1
- 两台电脑如何实现共享文件
- TIA protal与SCL从入门到精通(1)——SCL编程入门
- web前端 基于html实现花店购物网站源码(HTML+CSS+JavaScript) 企业网站制作
- Android开发:指南针(基于手机传感器)
- 安卓接入讯飞语音识别
- 吉度盘点机PDA盘点生成的条码和数量导入库存Excel表
- tomcat集群session共享
- Xmap的NullPointerException
- 连续语音信号的短时倒谱分析及其参数用途