Python导入上层目录中的包(..) / 导入同级目录的包 (相对导入)

导入与当前目录同级的其他目录下的包

Python导入上层目录中的包(..) / 导入同级目录的包 (相对导入)_第1张图片

 在dayaset_contra.py文件下想导入labelmaps.py中的包

sys.path.append("..")
from utils.labelmaps import get_vocabulary, labels2strs

而且要求utils下必须有__init__.py文件

而且必须是

进入到dataset目录下执行python dataset_contra.py

因为如果使用python lib/dataset/dataset_contra.py 这样执行的话,是不能用相对路径表示方法的

如果没有精确到utils下的labelsmaps文件,想from utils import get_vocabulary, labels2strs的话,那就要在utils下的__init__.py里面定义好了才行

导入上级目录下的某个py文件

这样就不需要有__init__.py了

像我在上层目录下的logger_self_code.py这样就可以导入成功

sys.path.append('..')
from logger_self_code import Logger

比如想在test.py中导入logger_self_code.py

Python导入上层目录中的包(..) / 导入同级目录的包 (相对导入)_第2张图片

 

导入同级目录

.
└── src/
 ├── main.py
 └── util.py

在main.py中,

from util import doSomethingCool
或
from .util import doSomethingCool

这么写都是不行的, 因为util只是个模块,不是个包

只能写

import util

如果非想上面那样的话,就要改成

.
└── src/
    ├── main.py
    └── utils/
        ├── __init__.py
        └── util.py

你可能感兴趣的:(python)