从同一文件导入引发ImportError

时间:2015-08-06 23:38:59

标签: python python-3.x python-import 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

1 个答案:

答案 0 :(得分:4)

在Python 3.x中,来自documentation -

  

当包被组织成子包时(与示例中的声音包一样),您可以使用绝对导入来引用兄弟包的子模块。例如,如果模块sound.filters.vocoder需要使用sound.effects包中的echo模块,则可以使用from sound.effects import echo

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

from stuff import values