【发布时间】:2017-06-09 07:01:22
【问题描述】:
我想让 crontab 运行一个公益项目的 python 脚本。
我可以在 Pycharm 中成功运行脚本。
当我使用 crontab 运行它时,出现错误。
环境:Mac OS,python3.5
我输入 'crontab -e' 后,它显示:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/Users/yy/anaconda/bin/python3:/Users/yy/anaconda/bin/
32 14 * * * PATH=$PATH:/Users/yy/anaconda/bin/ cd /Users/yy/PycharmProjects/selenium_test/ && /Users/yy/anaconda/bin/python3 /Users/yy/PycharmProjects/selenium_test/selenium_test.py >> /Users/yy/PycharmProjects/selenium_test/log.txt
我在 /var/mail/username 中收到如下错误:
From yy@YY.local Thu Jun 8 14:32:00 2017
Return-Path: <yy@YY.local>
X-Original-To: yy
Delivered-To: yy@YY.local
Received: by YY.local (Postfix, from userid 501)
id A7F1F38FFFCC; Thu, 8 Jun 2017 14:32:00 -0500 (CDT)
From: yy@YY.local (Cron Daemon)
To: yy@YY.local
Subject: Cron <yy@YY> PATH=$PATH:/Users/yy/anaconda/bin/ cd /Users/yy/PycharmProjects/selenium_test/ && /Users/yy/anaconda/bin/python3 /Users/yy/PycharmProjects/selenium_test/selenium_test.py >> /Users/yy/PycharmProjects/selenium_test/log.txt
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/Users/yy/anaconda/bin/python3:/Users/yy/anaconda/bin/>
X-Cron-Env: <LOGNAME=yy>
X-Cron-Env: <USER=yy>
X-Cron-Env: <HOME=/Users/yy>
Message-Id: <20170608193200.A7F1F38FFFCC@YY.local>
Date: Thu, 8 Jun 2017 14:32:00 -0500 (CDT)
Failed to import the site module
Traceback (most recent call last):
File "/Users/yy/anaconda/lib/python3.5/site.py", line 567, in <module>
main()
File "/Users/yy/anaconda/lib/python3.5/site.py", line 550, in main
known_paths = addsitepackages(known_paths)
File "/Users/yy/anaconda/lib/python3.5/site.py", line 327, in addsitepackages
addsitedir(sitedir, known_paths)
File "/Users/yy/anaconda/lib/python3.5/site.py", line 206, in addsitedir
addpackage(sitedir, name, known_paths)
File "/Users/yy/anaconda/lib/python3.5/site.py", line 162, in addpackage
for n, line in enumerate(f):
File "/Users/yy/anaconda/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 127: ordinal not in range(128)
我在这个错误上花了两个小时。 但是,没有解决方案有效... 请帮忙。 谢谢!
#我用的是python3.5,所以默认编码是utf-8。这 UnicodeDecodeError 很奇怪……
【问题讨论】:
-
我注意到奇怪的事情:1)你的路径上的可执行文件:
/Users/yy/anaconda/bin/python3; 2) anaconda 安装在你的路径上的/usr/bin之后,使它几乎没用 -
我想澄清一下。我是UIC的在读博士,从事公益项目(一年多无偿收集和传播失踪人员信息)。问题:脚本在 pycharm 中运行良好,但在 contrab 中出现错误。有理由相信 contrab 存在错误。调试了几个小时,终于发现是编码问题。是的,也许这个问题与答案不太匹配。但是,这是我如何分析和解决问题的过程。谢谢!
标签: python-3.x cron