导入python中具有本地模块依赖关系的包



考虑到该模块导入的是本地模块,我正试图了解如何从python中另一个文件夹的包中导入模块。

假设我有以下结构:


C:.
│   e.py
│
└───src
├───a
│   │   b.py
│   │   context.py
│   │   __init__.py
│   │
│   └───__pycache__
│           context.cpython-38.pyc
│
└───c
│   d.py
│   f.py
│   __init__.py
│
└───__pycache__
d.cpython-38.pyc
f.cpython-38.pyc
__init__.cpython-38.pyc

假设我想使用b.py中的方法(f.print_loca(((,当前运行的b提示我:

Actual: 
Traceback (most recent call last):
File "..srcab.py", line 2, in <module>
from b import f
File "..srcbf.py", line 1, in <module>
import d
ModuleNotFoundError: No module named 'd'
Expected: d->f

如何修复此导入错误?

以下是我的

b.py

from context import c
from c import f
f.print_loca()

context.py

import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
import c

d.py

def print_mes():
print("d")

f.py

import d

def print_loca():
print(d.print_mes()+"->"+"f")

谢谢

尝试使用"quot;启动前so:

如果你要把d导入b,我会做一些类似的事情:

from .src.c.d import *
# or from .src.c import d
# or import .src.c.d

此外,我认为最好只使用sys引用项目根目录。

相关内容

  • 没有找到相关文章

最新更新