用完cron.hourly不会导入Python模块

时间:2013-03-06 23:08:20

标签: python ubuntu cron

我已经没有了cron.hourly。它是chmod + x'd,它运行正常。我的问题是它无法将Python模块识别为可导入。

我有〜/ Foo / src,其中包含我变成可执行文件(main)的原始Python代码,以及我试图导入的另一个模块(foobar)。我有一个 init .py,那里是空的,应该让任何一个模块都可以导入。实际上,使用

运行我的脚本
python src/main.py

一切正常,我没有得到这个错误。运行时

run-parts -v /etc/cron.hourly/main

我收到如下错误:

ImportError: No module named foobar
run-parts: /etc/cron.hourly//main exited with return code 1

我导入foobar的方式是

os.chdir("/home/ubuntu/Foo/src/")
import foobar

同样,这在从Python运行时有效,但在运行可执行文件时却无效。为什么会这样,我可以改变什么以避免这种情况?

1 个答案:

答案 0 :(得分:0)

import sys
sys.path.append("/home/ubuntu/Foo/src")

import foobar

来自doc:

  

sys.path中

     

指定模块搜索路径的字符串列表。   从环境变量PYTHONPATH初始化,再加上一个   与安装相关的默认值。

     

在程序启动时初始化,此列表的第一项,   path [0],是包含用于的脚本的目录   调用Python解释器。如果脚本目录不是   可用的(例如,如果以交互方式调用解释器,或者如果是   脚本是从标准输入读取的),path [0]是空字符串,   它指示Python首先搜索当前目录中的模块。   请注意,脚本目录在条目之前插入   由于PYTHONPATH而被插入。

     

程序可以自行修改此列表。