【问题标题】:Importing between two packages in python [duplicate]在python中的两个包之间导入[重复]
【发布时间】:2014-10-17 09:17:03
【问题描述】:

我正在处理的项目中有两个包(它们都在项目根目录中):

我在room 包中的main.py 模块需要从speechtotext 包中导入一些模块。所以我在main.py 中有导入,看起来像from speechtotext.<modlue> import <something>。对于这些跨包导入,我不断收到ImportError

如何修复该导入以使其正常工作?

【问题讨论】:

  • main.py 是否作为主脚本运行?
  • @MartijnPieters- 是的。它初始化一些东西并运行它们。
  • 您不能从包内运行脚本。如果您希望 roomspeechtotext 都成为包,请将 main.py 移出 of room
  • @MartijnPieters - 我能否以某种方式将根目录添加到PYTHONPATH 而不实际运行sys.path.insert?例如,我在根目录中有一个configuration.py 模块,其他包中的许多模块都依赖该模块。这也可能会导致ImportError
  • 如果main.py 位于根目录,则该目录自动成为sys.path 的一部分。

标签: python packages importerror python-import


【解决方案1】:

要么将../speechtotext 的路径添加到PYTHONPATH envar,要么只是将speechtotext 移到房间文件夹中。并且不要忘记在 Speechtotext 中创建一个__init__.py 文件。

【讨论】:

    猜你喜欢
    • 2012-10-26
    • 2018-03-18
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2021-09-09
    • 2013-09-14
    • 2017-07-13
    • 1970-01-01
    相关资源
    最近更新 更多