2017-04-17 41 views
0

后,我导入functools后,我收到这样的消息来自解释:无法导入名“MappingProxyType”错误导入functools

Traceback (most recent call last): File "C:/Users/Admin/Documents/Python/decorator.py", line 1, in import functools File "C:\Python3\lib\functools.py", line 22, in from types import MappingProxyType ImportError: cannot import name 'MappingProxyType'

import functools 


def trace(func): 
    def inner(*args, **kwargs): 
     print(func.__name__, args, kwargs) 
     return func(*args, **kwargs) 
    functools.update_wrapper(inner, func) 
    return inner 


@trace 
def foo(x): 
    return x 


foo(42) 

使用PyCharm为IDE和CPython中作翻译

回答

5

这不是一个真正的答案,但一个评论。

第一:我无法核实提出的问题:问题中的代码完全在我使用的是标准的蟒蛇。

二:我偶然发现了这个问题,因为我有同样的错误消息,但可能出于不同的原因。我不小心将模块命名为“类型”。奇怪的是,python框架在解析导入的系统模块内的引用时选择了这个新的“类型”模块。这表明python解析引用的算法有点...呃...有点非常简单的设计。

不过如果读者收到此错误信息,请首先检查如果你不小心命名的东西在你的代码检查等原因该错误消息之前解决该问题的第一种方法的地方“类型”。

+0

它的工作!我命名了一个模块“types.py”,这个错误出现了。重命名后,一切正常。谢谢! – Prashanth

+0

不客气:-) –

相关问题