出现cannot import name 'main'的错误信息

ImportError: cannot import name ‘main’

最近在使用scrapy框架,但是在运行scrapy的时候,出现openSSL的问题,在网上查看答案,是因为版本不兼容,需要卸载重新安装。但是在执行sudo pip3 uninstall pyopenssl 时,又出现了ImportError: cannot import name 'main’的问题,详情如下:

wu@ubuntu:~/PycharmProjects/scrapy$ sudo pip3 uninstall pyopenssl
Traceback (most recent call last):
  File "/usr/bin/pip3", line 11, in <module>
    sys.exit(main())
NameError: name 'main' is not defined

网上搜到的解决办法都是更改pip3中的导包路径。但是试过了,不管用。于是就自己去源文件里面查看路径问题。
第一步:打开/usr/bin/pip3,内容如下

#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

而在pip源码中,没有定义的函数main,所以猜想指的是__main__!
于是,将import路径改为from pip import main
然后运行,又报错了,但是不再是main的问题,说明上一个问题已经解决,再看错误信息:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 11, in <module>
    sys.exit(main())
NameError: name 'main' is not defined

发现这个地方也要改,于是打开pip查看源码,将pip3中sys.exit(main()) 改为 sys.exit(main._main())
保存,退出。
再执行前面的命令,bingo!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值