已安装包的导入的最佳做法

时间:2015-01-19 03:02:04

标签: python import distutils

想象一下,我有一个包" foolibrary"这是通过setup.py安装的,我是主要的开发人员。哪个是在包内调用导入的首选方法?想象foolibrary有两个模块(a.py,b.py),我需要在c.py中访问它们:

  • foolibrary
    • a.py
    • b.py
    • c.py

在c.py中,导入这些内容的首选方法是什么?为什么?

from a import blah

VS

from foolibrary.a import blah

vs

from .a import blah

我已经看过这三种并且通常使用foolibrary.a import风格,但主要是出于习惯。

1 个答案:

答案 0 :(得分:1)

相对导入语法from .a import blah 现代的做事方式。参见PEP 328,https://www.python.org/dev/peps/pep-0328/,了解为什么它优于替代品。 (尽管PEP 8更倾向于绝对出口,但它也允许包装内相对进口作为可接受的替代品)。

就个人而言,BTW,我总是只导入模块,而不是"东西" (模块内部的函数,类等)。

但是,这是一种远非普遍的风格约束(,但是https://google-styleguide.googlecode.com/svn/trunk/pyguide.html的一部分 - 并且已经在Google工作了10年,并帮助塑造了部分它的Python实践和风格,我可以理解地偏向于这种风格: - )。