【发布时间】:2016-03-27 22:56:32
【问题描述】:
每个人。
我尝试学习 django 和 python。但我有一个问题。在我的书中有这样的字符串:
django-admin.py startproject megaproject
当我尝试执行此代码时,我收到下一条消息:
D:\Job\РАН\База Данных. Сомнология>django-admin.py startproject megaproject
Traceback (most recent call last):
File "C:\Python27\Scripts\django-admin.py", line 5, in <module>
management.execute_from_command_line()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
353, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 357,
in run_from_argv
self.stderr.write('%s: %s' % (e.__class__.__name__, e))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 8: ordinal
not in range(128)
此代码在英文目录中工作。但我有下一个类型的俄罗斯目录:
D:\Job\РАН\База Данных. Сомнология
这个问题出现是由于python和cmd的编码不同。而且我不能顺从他们。我尝试将编码更改为命令行和 python。但我没有结果。当我将编码更改为 cmd 时,我得到带有奇怪符号的错误字符串。当我在标题python文件中添加具体编码时,我也没有结果。
【问题讨论】:
-
顺便说一句,如果您可以迁移到 python 3.x,请这样做。它的 unicode 支持更紧密地集成在一起,通常问题更少。
-
是的,我知道。但是在这本书中只使用了python 2.x,因此它对我来说非常重要。谢谢。
-
@tdelaney,对不起。我担心我的英语。这不好。非常...我的帖子有很多错误吗?
-
不,我认为你的帖子写得很清楚......但我无法解释你为什么会出现这个错误。
-
问题可能是python如何读取文件系统字符串。它是俄语,但被读取为常规的 ascii 字符串,因此您会得到错误的字符。 This post 读起来很有趣。在
set PYTHONIOENCODING=cp1251运行命令之前,您可能有幸设置了环境变量。如果这不起作用,请运行 python,import sys,然后查看sys.stdout.encoding加上sys.getfilesystemencoding(),看看那里是否还有其他代码页。
标签: python windows python-2.7 encoding cmd