解决升级完pip后无法使用pip的问题

一、问题由来

问题是这么来着,由于需要在我的windows系统下用cmd输入pip指令(pip install opencv-python)安装opencv-python库的,但是由于没有使用–user,即刚开始没有权限,但同时它有提示说我的pip可以更新到最新版本。故我就先更新了(python -m pip install --upgrade pip),显示更新成功,但痛苦的开始就在这。我更新完之后,如之前操作再次输入install指令,然后就一直有如下错误:

Traceback (most recent call last):
  File "c:\program files (x86)\python37-32\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files (x86)\python37-32\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files (x86)\Python37-32\Scripts\pip.exe\__main__.py", line 9, in <module>
TypeError: 'module' object is not callable

百度了很久,用各种关键词找,如直接复制“Traceback (most recent call last):”和“TypeError: ‘module’ object is not callable”,或是搜索“pip升级后无法使用”都没有找到任何解决办法。只找到一篇类似有点关联的文章,如链接解决升级pip过后 无法使用pip问题,但是没有什么用,于是我开始自己摸索。

二、柳暗花明

链接里说的删除pip文件夹,我试过了,但是我的cmd还是提示如下:

Looking in links: C:\Users\SPANKZ~1\AppData\Local\Temp\tmp0shfhajx
Requirement already satisfied: setuptools in c:\program files (x86)\python37-32\lib\site-packages (40.8.0)
Requirement already satisfied: pip in c:\users\spankzilla\appdata\roaming\python\python37\site-packages (19.3.1)

咱也不敢问,咱也不懂呀。怎么办,我就把该目录下的所有文件都删了。(C:\Program Files (x86)\Python37-32\Lib\site-packages)
顺便把(C:\Users\spankzilla\AppData\Roaming\Python\Python37\site-packages)里的11/06日的日志信息也都删了。
然后重新键入如下指令:

C:\Users\spankzilla>python -m ensurepip

提示信息如下:

Looking in links: C:\Users\SPANKZ~1\AppData\Local\Temp\tmpttwfldor
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-19.0.3 setuptools-40.8.0

成功安装,很是高兴。于是先看了下此时pip的版本并开始安装几个库试一下:

C:\Users\spankzilla>pip -V
pip 19.0.3 from c:\program files (x86)\python37-32\lib\site-packages\pip (python 3.7)

C:\Users\spankzilla>pip install numpy
Collecting numpy
  Using cached https://files.pythonhosted.org/packages/39/77/e14b2921545cc9c9b8dd709fe92f32a43af7f1b6f2b4bbb02aa8d96940dc/numpy-1.17.3-cp37-cp37m-win32.whl
Installing collected packages: numpy
Successfully installed numpy-1.17.3
You are using pip version 19.0.3, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

C:\Users\spankzilla>pip install opencv-python
Collecting opencv-python
  Using cached https://files.pythonhosted.org/packages/bc/21/478da712072f16946a019a041b0f08a2768926aa9c00ff8a0537a9884ecb/opencv_python-4.1.1.26-cp37-cp37m-win32.whl
Requirement already satisfied: numpy>=1.14.5 in c:\program files (x86)\python37-32\lib\site-packages (from opencv-python) (1.17.3)
Installing collected packages: opencv-python
Successfully installed opencv-python-4.1.1.26
You are using pip version 19.0.3, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

注意到我是没有看到它的pip升级提示就立马升级的,我继续安装了opencv-python库(我本来就是要安装这个的,不敢先升级pip了)
然后我就看下既然安装opencv-python成功了,看能不能用。
1、显示了下在IDLE中直接键入import cv2,但报错如下:

import cv2
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import cv2
ModuleNotFoundError: No module named 'cv2'

于是我到cmd键入pip list查看以有库:

C:\Users\spankzilla>pip list
Package       Version
------------- --------
numpy         1.17.3
opencv-python 4.1.1.26
pip           19.0.3
pygame        1.9.6
setuptools    40.8.0
tqdm          4.35.0
You are using pip version 19.0.3, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

注意到我是有opencv-python 4.1.1.26这个东西的
2、换成文件运行试下
在这里插入图片描述
可以看到仍然报错:

>>> 
============== RESTART: C:/Users/spankzilla/Desktop/oopencv.py ==============
Traceback (most recent call last):
  File "C:/Users/spankzilla/Desktop/oopencv.py", line 1, in <module>
    import cv2 as cv
ModuleNotFoundError: No module named 'cv2'
>>> 

三、急中生智

我隐约感觉到是解释器(IDLE)的引用库时的路径和我的库安装的路径不一样导致这个问题的,与百度如何添加解释器的库路径
(百度有很多,暂不贴上)

四、突发问题

我发现我有两个python的IDLE,一个是(python 3.7 64-bit)另一个是(python 3.7 32-bit),用64-bit运行会报错,用32的不会。所以现在只用对64-bit版本的进行库路径添加就行了。找了一个博客链接:Windows下Python添加库(模块)路径

(暂停更,百度搜索一番还是不知道怎么添加库路径。。。所以暂用32-bit版本的编译器吧)
已试方法:

import os
os.chdir("C:\\Program Files (x86)\\Python37-32\\Lib\\site-packages")
import sys
sys.path.append(r"C:\Program Files (x86)\Python37-32\Lib\site-packages")

在这里插入图片描述
(添加一个路径C:\Program Files (x86)\Python37-32\Lib\site-packages,除非默认的pip install 不是这个路径–_–。。。)
三种方法都不奏效,待解决。

小小总结以下:目前方法时将目录下的文件都删了即可,我的库不多,就全删了。


2019/11/10 更新

1、总结至此,问题归于对我电脑上安装在c盘上的IDLE(Python 64-bit)不能识别到cv2库,32位的可以
2、现在我在www.python.org下载新的release,在安装第一步的页面显示:
在这里插入图片描述
找到了这个路径;C:\Users\spankzilla\AppData\Local\Programs\Python\Python37

在这个路径下的文件里发现有一个交lib的文件夹,猜想是否这就是当初安装IDLE时,默认的库的路径,于是把,cv2库整个复制过来,加上disc信息文件,再试一遍。

但效果。。。,不过有个报错是这样的,说明pip下载的库路径和它IDLE找的是不一样的,虽然我现在不知道怎么设置的。但路径终究应该找到了吧。虽然里面的文件怎么工作一点看不懂。。。
File “C:\Users\spankzilla\AppData\Local\Programs\Python\Python37\lib\cv2_init_.py”, line 3, in

然后发现这个文件名Python37-32和着意思时3.7版本,32位的??我压根没下载64位的?

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值