【问题标题】:How can I delete sys.path.append("../") but not get ImportError: No module named XXX如何删除 sys.path.append("../") 但没有得到 ImportError: No module named XXX
【发布时间】:2018-08-02 12:13:55
【问题描述】:

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

我看到requests没有sys.path.append("../")但是可以成功导入模块,那么我该怎么做才能删除sys.path.append("../")并得到正确的结果?

【问题讨论】:

  • 一个有用的阅读:realpython.com/python-modules-packages
  • 我尝试了from dependency_resolver.util import kube_util get ImportError No module named dependency_resolver.util 并在 util/__init__.py 中尝试了from . import kube_util,两种方法都失败了。@Jean-François Corbett
  • 尝试在您的dependency_resolver 文件夹中添加__init__.py 文件
  • 我以这种方式绑定但得到同样的错误ImportError: No module named dependency_resolver.uti@Shashank Verma
  • 我没有旧版 Python (2) 安装(也不打算安装它),所以很遗憾,我无法为您解决这个问题。如果可以的话,迁移到现代 Python 3。

标签: python python-2.7 python-import importerror


【解决方案1】:

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

from dependency_resolver.util import kube_util

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

from ..util import kube_util

【讨论】:

  • 我尝试使用模块的绝对路径from dependency_resolver.util import kube_util却得到ImportError: No module named dependency_resolver.util
猜你喜欢
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 2012-08-12
  • 2011-10-19
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多