在IPython中玩包

时间:2015-03-04 15:58:45

标签: python ipython python-import

我正在使用一个使用相对导入的Python包。因此,从一个模块,本地导入看起来像:

from . import module

包的结构如下:

package/
  __init__.py
  module1.py
  module2.py
  moduleN.py
  subpackage1/
    __init__.py
    module1.py
    module2.py
  subpackage2/
    __init__.py
    ...
  etc.

我想导入其中一个模块来单独试用它的函数和类。

所以,我cd加入了package/目录。然后我尝试了ipython module2.py并得到了:

ValueError: Attempted relative import in non-package

我还尝试了ipython -m module2,除了ValueError之外,我还得到了:

WARNING: Unknown failure executing module: <module2>

我也从一个目录尝试了同样的事情并得到了同样的错误。

如何导入模块并在IPython中使用它们的类和函数?

1 个答案:

答案 0 :(得分:1)

从项目的顶级目录中打开ipython,在本例中为package/

然后导入具有绝对导入的模块:

import package.module2 as module2

import package.submodule1.module1 as m1