python 包最佳实践:管理导入
python package best practice: managing imports
来自 R,我正在尝试围绕 python 中的包系统进行思考。
我的问题(简而言之)是:管理外部库导入的最佳实践是什么?
假设我有一个具有以下目录结构的包(称之为 pointless
)。
pointless/
setup.py
...etc
pointless/
__init__.py
module1.py
module2.py
并且假设 module1
和 module2
都有 header:
from __future__ import division
import numpy as np
...
我的问题是,当我 import pointless
时,我在 pointless.module1
和 pointless.module2
中得到 np
和 division
的 double-whammy。必须有更好的方法吗?
编辑
如果不清楚,我们深表歉意。当我 运行 (ipython):
>>> import pointless
>>> pointless.module1.<TAB>
pointless.module1.np
pointless.module.division
...
>>> pointless.module2.<TAB>
pointless.module1.np
pointless.module.division
...
我可以在两个模块中看到 np
命名空间,这看起来很乱而且太过分了。
有没有办法“集中”我的外部库导入,这样我就不会在每个模块中看到它们?还是我遗漏了什么?
这与这个问题有关:what happens when i import module twice in python。长话短说:如果你两次导入一个模块,它只加载一次,所以你的例子完全没有问题。
来自 R,我正在尝试围绕 python 中的包系统进行思考。
我的问题(简而言之)是:管理外部库导入的最佳实践是什么?
假设我有一个具有以下目录结构的包(称之为 pointless
)。
pointless/
setup.py
...etc
pointless/
__init__.py
module1.py
module2.py
并且假设 module1
和 module2
都有 header:
from __future__ import division
import numpy as np
...
我的问题是,当我 import pointless
时,我在 pointless.module1
和 pointless.module2
中得到 np
和 division
的 double-whammy。必须有更好的方法吗?
编辑
如果不清楚,我们深表歉意。当我 运行 (ipython):
>>> import pointless
>>> pointless.module1.<TAB>
pointless.module1.np
pointless.module.division
...
>>> pointless.module2.<TAB>
pointless.module1.np
pointless.module.division
...
我可以在两个模块中看到 np
命名空间,这看起来很乱而且太过分了。
有没有办法“集中”我的外部库导入,这样我就不会在每个模块中看到它们?还是我遗漏了什么?
这与这个问题有关:what happens when i import module twice in python。长话短说:如果你两次导入一个模块,它只加载一次,所以你的例子完全没有问题。