Pycharm在使用plotly模块时显示导入错误?

时间:2016-10-08 18:15:37

标签: pycharm plotly

我变得红色波浪线  从plotly模块导入时,即使我从Pycharm内部运行此脚本(Ctrl-Shift-F10),它也可以在Web浏览器中显示图形。甚至ipython ipython也显示导入的自动完成。这就是我的virtualenv virtualenv看起来的样子。

这家伙似乎有同样的问题Python dynamic objects not defined anywhere? (Plotly lib)

2 个答案:

答案 0 :(得分:2)

深入研究了导入之后,我发现graph_objs包中的__init__.py文件对于默认的intellisense来说太大了。
idea.max.intellisense.filesize=10240添加到自定义属性文件(Help -> Edit Custom Properties...)使其对我有用。

答案 1 :(得分:0)

答案简短: 动态创建的Scatter和Layout对象。因此pycharm无法找到它的定义。

详细说明:

这是py文件中的第一个包含;

from plotly.graph_objs import Scatter, Layout

之后调用 plotly / graph_objs / __ init __。py 文件;

from plotly.graph_objs.graph_objs import *  # this is protected with __all__

之后

__all__ = list(graph_reference.CLASSES.keys())

此定义位于 plotly / graph_objs / graph_objs.py 文件中。 __ all __ 是该模块的公共对象列表。

https://docs.python.org/2/tutorial/modules.html#importing-from-a-package

plotly / graph_referance.py 中定义CLASSES;

CLASSES = _get_classes()

在此函数中,它表示名为 _BACKWARDS_COMPAT_CLASS_NAMES 的变量并创建类;

_BACKWARDS_COMPAT_CLASS_NAMES = {
    ...
    'Scatter': {'object_name': 'scatter', 'base_type': dict},
    ...
    'Layout': {'object_name': 'layout', 'base_type': dict},
    ...
}