【发布时间】:2018-03-04 23:36:30
【问题描述】:
我有一个可用的 python3 脚本,并且我已经通过 crontab -e 设置了 crontab。我已经添加了这一行
* * * * * /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /Users/harvey/PycharmProjects/3_5_pgm/3woerter.py
cron 正在执行脚本,但我收到一封包含以下错误消息的电子邮件:
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=harvey>
X-Cron-Env: <USER=harvey>
X-Cron-Env: <HOME=/Users/harvey>
Message-Id: <20161221161003.1BE13ABFDD0D@harvey-Mac-Pro-4.local>
Date: Wed, 21 Dec 2016 17:10:03 +0100 (CET)
Traceback (most recent call last):
File "/Users/harvey/PycharmProjects/3_5_pgm/3woerter.py", line 43, in <module>
website("http://www.krone.at/nachrichten/rss.html")
File "/Users/harvey/PycharmProjects/3_5_pgm/3woerter.py", line 25, in website
fobj_out.write(str(titleSoup)) # <--- in Ausgabedatei schreiben
UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 121: ordinal not in range(128)
所以我认为 cron 使用的是 python2 而不是 python3 当我通过终端直接尝试命令时,一切正常。
如何确保 cron 使用的是 python3?
【问题讨论】:
-
如果通过终端发出完整的命令,输出是什么?
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /Users/harvey/PycharmProjects/3_5_pgm/3woerter.py -
然后我从我的脚本和我的机器人中得到输出,因为它应该发布一条推文。
-
所以问题实际上不在于 crontab。您可以编辑要 [已解决] 的问题或在下面填写您的答案。 UTF 编码问题值得提出一个新问题,但请务必先搜索 SO,因为我很确定它一直都会出现。
-
@AlexGRice:不,忘记我所有关于 UTF-8 编码的 cmets。这仍然是 cron 的问题,因为当我通过 python 使用与 crontab 中相同的命令在终端中启动脚本时,我没有收到任何错误,并且一切正常。如果我通过 python3 使用与 crontab 中相同的命令在终端中启动命令,则不会出现错误,并且一切正常。但是当 cron 开始工作时,我得到了 ascii 错误
-
抱歉,我无法编辑我的评论。我删除了旧的错误 cmets。