如何删除sys.path.append(“ ../”)但无法获取ImportError:没有名为XXX

时间:2018-08-02 12:13:55

标签: python python-2.7 python-import importerror

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("../")并获得正确的结果?

1 个答案:

答案 0 :(得分:0)

您可以使用模块的绝对路径,如下所示:

from dependency_resolver.util import kube_util

或者您也可以使用相对导入:

from ..util import kube_util