pip 升级到 10 之后报错,求助如何解决?
Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2017.3\helpers\packaging_tool.py", line 192, in main retcode = do_install(pkgs) File "C:\Program Files\JetBrains\PyCharm 2017.3\helpers\packaging_tool.py", line 109, in do_install return pip.main(['install'] + pkgs) AttributeError: module 'pip' has no attribute 'main'
我找了好多办法都没有用,求助
pip 升级到 10 之后报错,求助如何解决?
我也是…
pip 10 把 pip.main() 给挪窝了,直接调用会报 AttributeError。你得改用 sys.executable 来调子进程,或者用新的 pip._internal 模块。
方案一(推荐):用 subprocess 调用 pip 这是现在官方推荐的做法,稳定可靠。
import subprocess
import sys
# 安装包
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'package_name'])
# 升级包
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package_name'])
# 获取已安装包列表
result = subprocess.run([sys.executable, '-m', 'pip', 'list'], capture_output=True, text=True)
print(result.stdout)
方案二:用 pip._internal(不保证向后兼容) 如果非要用编程方式调用,可以这么干,但注意这属于内部 API,可能会变。
from pip._internal import main as pip_main
# 注意:参数要传列表,跟命令行一样
pip_main(['install', 'package_name'])
如果还在用老代码的紧急修复 临时改一下导入路径也能跑,但尽快换成方案一才是正事。
import pip
# 临时兼容性补丁
if hasattr(pip, '_internal'):
pip.main = pip._internal.main
总结:用 subprocess 调 pip 最靠谱。
兄弟我更新了 pycharm 就 ok 了
我也是,import requests 库升级后报错
卸载后,用 get-pip.py 安装成功。
升级 pycharm
或者看看这个 http://www.cnblogs.com/Chians-DW/p/8858212.html
我也是 只能别扭着用 python3 -m pip 先凑合着…
pip10 似乎移动了一些东西,在 changelog 也没说明
我也遇到了这个问题

