如何将一个模块导入到另一个模块



这是我的项目的结构:

project (folder)
main.py
assets (folder)
a.py
b.py

当我将模块a导入模块b并运行main.py时,我得到No module named 'a'

但是如果我直接运行b.py,它导入a.py很好。

a和b在同一个目录中,所以我遗漏了什么?顺带一提,我用的是Python 3.10。

main.py:

import assets.b as bb

a.py:

def func(x):
print(x)

b.py:

import a
a.func('hello')

按如下方式更新您的b.py

from . import a 
a.func('hello')

from assets import a
a.func('hello')

在第一种情况下,我们告诉解释器检入与文件相同的位置。在第二种情况下,我们只使用全路径。用python 3.10.1和3.6测试

如果你使用文件夹结构,最好根据你的main.py来固定你的执行路径和相对路径。意味着不能从assets运行python3.10 b.py


如果您希望从assets文件夹执行python3.10 b.pypython3.10 main.py的功能,则按如下方式更新代码。

try:
from . import a
except:
import a
a.func('hello')

如果你坚持使用像PyCharm这样的IDE,那么这些错误很容易发现和修复。

相关内容

  • 没有找到相关文章

最新更新