【问题标题】:python package best practice: managing importspython包最佳实践:管理导入
【发布时间】:2016-10-12 13:24:28
【问题描述】:

来自 R,我正在尝试用 python 包裹系统。

我的问题(简而言之)是:管理外部库导入的最佳做法是什么?

假设我有一个具有以下目录结构的包(称为pointless)。

pointless/
    setup.py
    ...etc
    pointless/
        __init__.py
        module1.py
        module2.py

假设module1module2 都有标题:

from __future__ import division
import numpy as np
...

我的问题是,当我 import pointless 时,pointless.module1pointless.module2 都会受到 npdivision 的双重打击。一定有更好的方法吗?

编辑

抱歉,如果不清楚。当我运行(ipython)时,这让我很烦恼:

>>> import pointless
>>> pointless.module1.<TAB>
pointless.module1.np
pointless.module.division
...

>>> pointless.module2.<TAB>
pointless.module1.np
pointless.module.division
...

我可以在两个模块中看到 np 命名空间,这看起来很混乱而且有点矫枉过正。

有没有一种方法可以“集中”我的外部库导入,这样我就不会在每个模块中看到它们?还是我错过了什么?

【问题讨论】:

  • 对不起,你明白了吗?
  • 您要解决的问题是什么?
  • import 语句所做的只是将名称绑定到导入模块的命名空间。这只是实际加载它的模块的第一次导入。所以没有矫枉过正。

标签: python pypi python-packaging


【解决方案1】:

这与这个问题有关:what happens when i import module twice in python。长话短说:如果你导入一个模块两次,它只加载一次,所以你的例子根本没有问题。

【讨论】:

    猜你喜欢
    • 2022-08-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多