从同一文件导入会引发 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
很抱歉提问,但我找不到答案。 我有这棵树:
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 thesound.effects
package, it can usefrom sound.effects import echo
.
以同样的方式,你需要使用绝对包名称,而不是相对名称,所以在你的 main.py
中做 -
from stuff import values