多くの人がうまくいけば関係することができるように、このエンコーディングの問題は私を精神的に駆り立てています。これについて少し光を当てていただければ幸いです。
最終的な目標は、ターミナルとcronの両方から、およびcronから。を使用して同じscript.pyを実行できるようにすること> stdout.txt
です。そして言うまでもなく、私は深刻なエンコーディングの問題を抱えています。
私のscript.pyはターミナルから正常python script.py
に実行されます:エラーをスローしますが、ターミナルから実行すると:python script.py > stdout.txt
どちらの方法でも、cronで実行すると同じエラーがスローされます。
crontab -e
ルートとして入力されたPythonスクリプトがあります。
これは私のscript.pyヘッダーです:
#!/usr/bin/python
# -*- coding: utf-8 -*-
これは私のcronエントリです:
* * * * * python /home/ubuntu/parrot/script.py > /home/ubuntu/parrot/stdout.txt
これは私のstdout.txt(関連部分)です:
Unexpected error! (<type 'exceptions.UnicodeDecodeError'>, UnicodeDecodeError('ascii', 'blabla some weird text n\xc3\xa5r end', 54, 55, 'ordinal not in range(128)'))
これはターミナルからの私の環境です(関連部分):
LANG=en_US.UTF-8
これはcron(関連部分)からの私のenvです:
LANG=en_US.UTF-8
これは、エラーをスローするscript.pyの(最初の)行です。
print 'Posting @%s: %s' % (statusObj.user.screen_name.encode('ascii', 'replace'), statusObj.text.encode('utf-8', 'replace'))
編集:
sys.getdefaultencoding()
戻り値ascii
どんな助けでも大歓迎です!