从同一文件导入会引发 ImportError

importing from same file raises ImportError

很抱歉提问,但我找不到答案。 我有这棵树:

Dogs&Sheeps
    simulation.py
    stuff
        main.py
        values.py

simulation.py 中的代码开始于:

import pygame
import sys

from stuff import main
from stuff import values

main.py 中的代码开始于:

from random import randint
from time import sleep
import queue
import pygame
import sys

import values

如果我启动 simulation.py 会出现此错误:

    Traceback (most recent call last):
  File "...\simulation.py", line 5, in <module>
    from stuff import main
  File "...\stuff\main.py", line 7, in <module>
    import values
ImportError: No module named 'values'

我想我想做什么很明显,但无论如何。在文件 main.py 中,我想导入同一文件夹中的文件 values.py

在 Python 3.x 中,从 documentation -

When packages are structured into subpackages (as with the sound package in the example), you can use absolute imports to refer to submodules of siblings packages. For example, if the module sound.filters.vocoder needs to use the echo module in the sound.effects package, it can use from sound.effects import echo .

以同样的方式,你需要使用绝对包名称,而不是相对名称,所以在你的 main.py 中做 -

from stuff import values