Python - ERROR - 写入数据到流失败:<打开文件 '<stdout>',模式 'w' 在 0x104c8f150>。

13

我正在从CSV文件导入数据,在输入了210行后,会返回这个错误。我是在Django shell(manage.py shell)中执行此操作。

ERROR - failed to write data to stream: <open file '<stdout>', mode 'w' at 0x104c8f150>

你需要展示在Django shell中执行的内容,才有可能让其他人理解为什么会出现那种情况。 - Jon Clements
1
错误发生是因为sys.stdout.encoding不是在那里定义的编码,只需执行以下操作:import os import sysif not sys.stdout.encoding:      os.putenv ('PYTHONIOENCODING', 'UTF-8')      os.execv (sys.executable, ['python'] + sys.argv) - Fernando Valente
@FernandoA.Valente,您能否接受lechatpito的答案以使QA更加整洁? - andilabs
2个回答

34

这是一个与IPython编码不是UTF-8有关的问题。export PYTHONIOENCODING=UTF-8可以解决它。


现在一年后,当我仅仅从python shell执行像这样的操作时:SomeModel.objects.all(),我遇到了这个错误信息。同样,这解决了问题。 - webtweakers

1
这个把戏起了作用。
# sys.setdefaultencoding() does not exist, here!
import sys
reload(sys)  # Reload does the trick!
sys.setdefaultencoding('UTF-8')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接