在OS X El Capitan上通过crontab启动python脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在OS X El Capitan上通过crontab启动python脚本相关的知识,希望对你有一定的参考价值。
我有一个工作的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?
答案
我也碰到了这个!我通过添加LC_ALL
和LANG
解决了这个问题:
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的另一个问题
以上是关于在OS X El Capitan上通过crontab启动python脚本的主要内容,如果未能解决你的问题,请参考以下文章
sh 在OS X El Capitan上安装Autoconf和Automake
制作 Mac OS X El Capitan 的U盘引导安装
Cocoapods “pod install”卡在 OS X El Capitan 上