我变得红色波浪线 从plotly模块导入时,即使我从Pycharm内部运行此脚本(Ctrl-Shift-F10),它也可以在Web浏览器中显示图形。甚至ipython 也显示导入的自动完成。这就是我的virtualenv 看起来的样子。
这家伙似乎有同样的问题Python dynamic objects not defined anywhere? (Plotly lib)
答案 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},
...
}