python版本:Win7上为2.7.15
sys.path : ['', 'C:\\windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Users\\leih\\AppData\\Roaming\\Python\\Python27\\site-packages', 'C:\\Python27\\lib\\site-packages']
我的模块树如下:
├───dependency_resolver
│ ├───entrypoint
│ │ dependency.py
│ │ __init__.py
│ │
│ ├───test
│ │ │ test_dependency.py
│ │ │
│ │ └───__pycache__
│ │ test_dependency.cpython-27-PYTEST.pyc
│ │
│ └───util
│ kube_util.py
│ kube_util.pyc
│ nc_util.py
│ pg_util.py
│ __init__.py
│ __init__.pyc
我想在dependency.py中导入kube_util,如果仅from util import kube_util
会出现ImportError ImportError: No module named util
,但是如果添加sys.path.append("../")
,则可以运行它。测试模块中存在相同的问题。
import os, sys, time, json
# sys.path.append("../")
from util import kube_util
我看到请求没有sys.path.append("../")
但可以成功导入模块,那么我该怎么做才能删除sys.path.append("../")
并获得正确的结果?
答案 0 :(得分:0)
您可以使用模块的绝对路径,如下所示:
from dependency_resolver.util import kube_util
或者您也可以使用相对导入:
from ..util import kube_util