Python中调用help()报错:Not enough Memory

系统环境:win7 SP1 Python3.6
最近在ipython中调用help()函数,提示:Not enough Memory

[In1]: help(help)
Not enough Memory

记得以前使用时没有问题的,然后再网上查了一下,
http://bugs.python.org/issue19914

For posterity for anyone that finds this old issue, I investigated this problem in the debugger in Windows 7. It turns out that more.com (the pager used by Python’s help) calls MultiByteToWideChar [1] with dwFlags passed as MB_PRECOMPOSED (1), which is forbidden for UTF-8. The error message is just a generic error that incorrectly assumes decoding the byte string failed due to running out of memory.

msg261838 Author: Eryk Sun (eryksun) Date: 2016-03-16 04:28

注意看这条记录,里面提到了这个是window7上的一个bug:使用UTF-8时,就会引起这个错误
win10上已经解决了

解决办法如下,更改代码页为850

# 命令行里输入一下命令,更改代码页为 850 多语种 (MS-DOS Latin1) 
C:\> chcp 850
C:\> python
...
>>> help(help)
>class _Helper(builtins.object)
 |  Define the builtin 'help'.
...
C:\> ipython
...
[In1]: help(help)
>class _Helper(builtins.object)
 |  Define the builtin 'help'.
...

总结:对系统底层不是很懂,所以引用的部分只选择了描述部分,有兴趣的可以直接观看原文。

你可能感兴趣的:(异常)