(Errno 101) 使用 crontab 执行 python 脚本时网络无法访问

Iva*_*van 5 python cron networking

我想使用下面的脚本从 webstie 检索一些信息。使用命令行效果很好。但是,使用crontab进行调度时,会遇到“错误101”问题。我无法找出根本原因,您能帮忙提供一些建议吗?谢谢!

    req = urllib2.Request(tempURL)
    req.add_header('User-Agent', ua)
    try:
        response = urllib2.urlopen(req, timeout=10)
        data = response.read()
        print data
        response.close()
        logging.info("Successfully get information about city " + str(k))
    except urllib2.URLError, e:
        logging.info("Failed to crawl url " + tempURL)
Run Code Online (Sandbox Code Playgroud)

我的Python环境:

机器是redhat,安装了python 2.6.6。为了使用python2.7.4。我从网上下载了 python-2.7.4.tar 并自己构建。还将以下环境变量添加到/etc/profile

PYHOME=$The unpacked path
Run Code Online (Sandbox Code Playgroud)

这样做之后,我得到了以下信息

[]$ python --version
 >>> Python 2.7.4
Run Code Online (Sandbox Code Playgroud)

然后按照谷歌搜索,我创建了一个 shell 脚本来设置 python 脚本的 ENV。这个 shell 脚本将用于 crontab 计划

#!/bin/bash
export PYHOME=$Python274_location
python my.py
Run Code Online (Sandbox Code Playgroud)

如果直接在命令行中执行“python my.py”,可以获得正确的结果。但是如果在 crontab 中调度,我总是会收到以下错误。

ERROR:root:Failed to reach server. Reason: [Errno 101] Network is unreachable
Run Code Online (Sandbox Code Playgroud)

在我看来,它应该与我的 python ENV 有关,但到目前为止还没有任何线索。