我正在尝试制作 matplotlib 的模拟,以便我可以使用 ReadTheDocs 编译我的文档,但遇到了问题。
在我的代码中,我使用from matplotlib.pyplot import *
.
我正在为我的 Mocks 使用以下代码(如ReadTheDocs FAQ所建议的):
class Mock(object):
def __init__(self, *args, **kwargs):
pass
def __call__(self, *args, **kwargs):
return Mock()
@classmethod
def __getattr__(cls, name):
if name in ('__file__', '__path__'):
return '/dev/null'
elif name[0] == name[0].upper():
return type(name, (), {})
else:
return Mock()
MOCK_MODULES = ['numpy', 'scipy', 'matplotlib', 'matplotlib.pyplot']
for mod_name in MOCK_MODULES:
sys.modules[mod_name] = Mock()
但是,在运行时from matplotlib.pyplot import *
我收到一条错误消息TypeError: 'type' object does not support indexing
。
有没有办法可以更改我的 Mock 以便它允许我使用该from x import *
样式导入 matplotlib?我不需要提供任何特定功能,我只需要能够导入它,以便 ReadTheDocs 可以正确导入代码。