【问题标题】:python relative imports randomly failpython相对导入随机失败
【发布时间】:2017-08-21 12:44:15
【问题描述】:

除了 main.py,我还有一个包含更多 .py 文件的文件夹。我想将这些文件导入 main.py 以及其他文件中。 在 main.py 中

from folder import file1, file2

到目前为止有效(尽管它确实失败了一次 iirc)。 在其他文件中都没有

from . import file3
import file3
from folder import file3

始终如一地工作。到目前为止我试过了:

import folder #in main.py or the other files

import sys
sys.path.append("/folder") #in main.py

并添加一个 init.py(显然带有下划线,而不是粗体),这在 python3 中应该是不必要的以及我忘记的其他一些东西。每当我更改任何内容时,导入通常会工作一次或两次,然后再次失败并出现

builtins.SystemError: Parent module '' not loaded, cannot perform relative import

我尝试过的大多数事情,我都在 SO 的类似问题中读到过,所以是的,我知道它们。正如我所说,这些都不起作用。 我没有尝试过的一件事(尽管它可能有效)是创建一个链表目录布局(因为我想避免

from folder.folder.folder.folder.folder.folder.folder.folder.folder import file

另外,我有信心但还不确定我永远不需要交叉导入

【问题讨论】:

    标签: python relative-path


    【解决方案1】:

    问题是,在使用其他语言的其他 IDE 后,我希望wing 在按 F5 时执行 main.py,就像其他 IDE 一样。 Wing 执行了我上次编辑的任何文件。

    所以当我编辑 main.py 以使导入工作时,他们做到了。然后,当错误脚本在其他地方失败并且我修复了某些东西时,导入将停止工作。

    在按 F5 之前总是在 main.py 中添加和删除一个空格可以解决这个问题(但可能有更优雅的解决方案)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多