【问题标题】:Python: "__init__" won't load modulesPython:“__init__”不会加载模块
【发布时间】:2017-05-03 19:30:33
【问题描述】:

按照教程,我尝试创建自己的包但没有成功。包含包的文件夹的路径在 PYTHONPATH 中,包文件夹包含“init.py”文件及其模块。

mypath/my_packages/mymath
---------------------/__init__.py 
---------------------/add.py 
---------------------/division.py
---------------------/(other .py files)

路径/to/my_packages 在 PYTHONPATH 中。我也可以在“sys.path”中看到它。

如果__init__.py 为空,我可以“导入 mymath”,但不能使用它的任何模块。 如果我尝试从 __init__.py (from add import add [模块 add.py 包含函数“add()”]) 导入模块,我会收到错误消息: "ImportError: 没有名为 'add' 的模块"。

【问题讨论】:

  • from .add import add 怎么样?
  • 解决了!谢谢!

标签: python


【解决方案1】:

如果path/to/my_packages 在 PYTHONPATH 中,你应该导入类似的包

from mymath.add import add

或者如果你在 mymath 模块中(例如在__init__)你也可以做相对导入,比如

from .add import add

【讨论】:

  • 第一种模式也适用于包的__init____init__ 正文中的两种方式都会将 mymath.add 暴露给首先导入 mymath 的模块。
猜你喜欢
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
  • 2011-11-29
  • 1970-01-01
  • 2013-05-23
  • 2014-08-12
相关资源
最近更新 更多