具体问题
环境:
- windows
- python3.6
根据pip 的提示
WARNING: You are using pip version 19.3.1; however, version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
更新pip 报错
python -m pip install --upgrade pip
错误信息
AttributeError: 'NoneType' object has no attribute 'bytes'
同时,直接用pip 去掉 python -m
后则现实 pip 已经是最新的
pip install --upgrade pip
Requirement already up-to-date: pip in d:\python\python36\lib\site-packages (20.0.2)
solution
删除这个文件夹 C:\Users\harryhare\AppData\Roaming\Python\Python36\site-packages\
解决过程记录
先是直接搜索报错
看到的第一个解决方案:
easy_install -U pip
C:\>easy_install -U pip
Searching for pip
Reading https://pypi.org/simple/pip/
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc
501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-
none-any.whl#sha256=4ae14a42d8adba3205ebeb38aa68cfc0b6c346e1ae2e699a0
b3bad4da19cef5c
...
Installed d:\python\python36\lib\site-packages\pip-20.0.2-py3.6.egg
Processing dependencies for pip
Finished processing dependencies for pip
虽然执行结果没问题,但是再跑一下 python -m pip install --upgrade pip
依然报一样的错
继续搜索,看到第二个:
python -m pip install -U --force-reinstall pip
这里加了 --force-reinstall
参数,然而没卵用,一样报错
继续搜,第三个
pip --default-timeout=900 install --upgrade pip
这里是怀疑网络原因造成的超市,于是手动指定了超时时间,然而依然没卵用,报一样的错
根据现象,猜测安装了冲突的版本
去c:/user下找了一下没找到目录
然后,搜索 python -m pip install
和直接用 pip install
的区别,搜到个知乎回答
提到 --version
参数
python -m pip —version
pip --version
然后试了下,发现有输出路径
D:\>python -m pip --version
pip 19.3.1 from C:\Users\harryhare\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
D:\>pip --version
pip 20.0.2 from D:\python\python36\lib\site-packages\pip-20.0.2-py3.6.egg\pip (python 3.6)
找到 C:\Users\harryhare\AppData\Roaming\Python\Python36\site-packages\
发现这个路径下只有pip 一个包,重命名这个文件夹重新执行 python -m pip install --upgrade pip
, 报错消失
所以,原因大概就是不知道何时 pip upgrade 的时候把包装到这个地方了