【问题标题】:starting a python script via crontab on OS X El Capitan在 OS X El Capitan 上通过 crontab 启动 python 脚本
【发布时间】: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。

标签: python macos cron


【解决方案1】:

我也遇到过!我通过添加LC_ALLLANG 解决了这个问题: LC_ALL=en_US.UTF-8 LANG=en_US.utf-8 * * * * * /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /Users/harvey/PycharmProjects/3_5_pgm/3woerter.py

我了解到之前阅读 http://click.pocoo.org/5/python3/#python-3-surrogate-handling 的另一个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2014-12-15
    相关资源
    最近更新 更多