pip更新到18版本后使用pycharm更新问题:module 'pip' has no attribute 'main'

今天升级pip到18.0版本后更新模块时出现错误

分析报错信息可知,问题出在packaging_tool.py文件的213行和109行,找到具体的代码,如下

# 109行函数
def do_install(pkgs):
    try:
        import pip
    except ImportError:
        error_no_pip()
    return pip.main(['install'] + pkgs)
# 213行函数
def do_uninstall(pkgs):
    try:
        import pip
    except ImportError:
        error_no_pip()
    return pip.main(['uninstall', '-y'] + pkgs)

由报错信息可知213行函数 pip.main(['uninstall','-y'] + pkgs),pip没有main属性

经过pip18版本与9.0版本的对比可知在18版本中把main函数放进了_internal,所以把上面pip.main函数的导入改为from pip._internal import main,修改后为

# 109行函数
def do_install(pkgs):
    try:
        # import pip
        try:
            from pip._internal import main
        except Exception:
            from pip import main
    except ImportError:
        error_no_pip()
    return main(['install'] + pkgs)
# 213行函数
def do_uninstall(pkgs):
    try:
        # import pip
        try:
            from pip._internal import main
        except Exception:
            from pip import main
    except ImportError:
        error_no_pip()
    return main(['uninstall', '-y'] + pkgs)

问题解决

原文地址:https://www.cnblogs.com/zuanzuan/p/9647826.html