如何在 PyCharm 中正确导入 Python 包?

How to properly import a Python package in PyCharm?

我是 PyCharm 的新手,在下载 Python 包 (Manim) 后,我的代码无法识别包中使用的方法,除非我非常准确地告诉它在哪里看。换句话说,当尝试只导入 Manim 时,我得到了这个:

其中PyCharm甚至似乎表明它不需要两条灰线,因为它已经导入了Manim。问题是错误(红色下划线),它们指向 Manim 包中的 类 and/or 方法,但在我精确之前无法识别:

我怎样才能优化我的导入,以便一行就足以满足所有与 Manim 有关的内容? (仅 from manimlib import * 使用 Spyder3 编辑器就可以正常工作。)

正如@Mike Scotty 在他的评论中指出的那样,import *from a import * 通常是个坏主意,因为 python 不知道要导入什么,尤其是如果有多个 类 同名。

IDE不抱怨并不意味着您的代码运行顺畅。

这里有几个选项:

  1. 有一个相当大的导入列表(这绝不是错误的),就像你在第二张图片中那样。
  2. 使用 import manimlib 并进行相当长的 function/class 调用:intro_words = manimlib.mobject.svg.text_mobject.Text

可以像这样将类似的导入组合在一起:

from manimlib.mobject import geometry.Polygon as Polygon, svg.text_mobject.Text as Text

据我所知,最 pythonic 的方法是进行非常具体的导入,即使这意味着您最终会得到大量进口清单。除此之外,大多数 IDE 像 PyCharm、Atom 或 Visual Studio 都有办法将大型导入列表折叠成一行: 例如 PyCharm 这样做:import ... 通过点击显示所有导入。

请参阅 pythons documentation on imports and pythons documentation on modules 以更好地了解导入的工作原理。