【问题标题】:Where am I going wrong in importing a self made python class in a self made sub package?在自制子包中导入自制python类时我哪里出错了?
【发布时间】:2018-09-12 16:55:29
【问题描述】:

您好,我是 python 新手,我会再次关注这个问题。我目前正在重构一个项目以使其可扩展。

当尝试从位于不同包中的模块导入名为 IrishTimesEventHandler 的对象时,interperter 在 main.py 中遇到错误:

from alexaevents.irish_times_event_handler import IrishTimesEventHandler
ModuleNotFoundError: No module named 'alexaevents.irish_times_event_handler'

听一下我的目录:

main.py 中的 import 语句如下所示:

from alexaevents.irish_times_event_handler import IrishTimesEventHandler
  • 我在 sys.path 中有重复的 enteries。
  • venv 目录在 sys.path 中列出。

  • 我正在使用 PyCharm 社区版。

  • 我使用的是 Python 3.6 迭代器。

我正在使用 PyCharm 进行重构,但据我所知没有循环依赖。

【问题讨论】:

  • __init__.py 文件的内容是什么?
  • @FlyingTeller 所有 init.py 文件都是空的。我认为“在最简单的情况下,init.py 可以只是一个空文件”,这意味着您不需要在其中包含任何内容即可进行导入,除非您想打包。 * 不是这样吗?
  • 另外,ìmport alexaevents 有效吗?
  • @FlyingTeller 键入“import alexaevents”不会引发错误
  • @bloopiebloopie 是的,您不需要在 init.py 中导入导入。

标签: python import pycharm python-import


【解决方案1】:

您将文件名命名为irish_times_event_handler.py 还是irish_times_event_handler

我认为导入模块时需要 .py 扩展名

【讨论】:

  • 我现在才看到这个。您是正确的,文件名未标有扩展名.py。我不知道我怎么没看到。我刚刚看到文件名旁边的图标,并假设该文件在目录中具有扩展名“.py”,但 IDE 没有显示扩展名。我改变了它并且它起作用了。当我不那么松口气/喜出望外时,我会感到很愚蠢。非常感谢您的参与。我靠,靠欣赏。都是学习……
猜你喜欢
  • 2019-05-20
  • 2016-10-04
  • 1970-01-01
  • 2015-01-17
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多