整理一下看到的python配置opencv库的方法
1)先下载win版本的opencv并extract,然后在opencv\build\python\cv2下选择对应python版本文件夹下(比如我的是python-3.7)的 .pyd文件(cv2.cp37-win_amd64.pyd)。
2)将该文件复制到你要安装的环境下的 Lib\site-packages路径下(G:\software_Anaconda\Anaconda3\envs\tensorflow\Lib\site-packages),重命名为 cv2.pyd
3)在Pycharm相应的解释器下就可以使用opencv了
根据在python中配置opencv库,使用pycharm环境 - 腾讯云开发者社区-腾讯云 (tencent.com)可以发现即使没有编译器使用cmd也一样可以完成编程过程。先记住这句话。
因为想用虚拟环境,参考(2条消息) Pycharm虚拟环境中Virtualenv的作用以及配置_Tom0414的博客-CSDN博客_pycharm virtualenv,通过pycharm创建虚拟环境,基础解释器是python3.6(参考这篇博客,这里是匹配手里的代码用的3.6.8版本)。
根据后者博客在虚拟环境的Scripts中pip,但是发现opencv还是出现在了python3.6解释器里面,而虚拟环境的解释器里没有。
考虑是不是只有根据前者博客,在激活虚拟环境之后,再进行pip才能只针对虚拟环境的解释器添加库包。参考cmd进入pycharm所创建的虚拟环境_莫逸风的博客-CSDN博客_cmd进入虚拟环境。
进入虚拟环境之后,再次pip。没有和全局的解释器一样拥有两个opencv库,成功!
但是此时突然发现即使不激活,在Scripts中pip的话库依然只是单独加到了虚拟环境里,没有像前面那样放到了全局python3.6里。大概是因为前面试验的时候,根据博客写的shift后右键用命令行打开,但是电脑里只有Powershell(自行查询这个和cmd的区别),因为Powershell不支持activate,我才改用了cmd。现在想来同样在Scripts中pip,一个加到了全局一个加到了局部虚拟环境,这种区别应该是Powershell和cmd的差异引起的。但是为了保险起见,还是尽量用cmd,以及针对虚拟环境添加所需库的时候,先激活。
在pycharm创建虚拟环境pythonProjects5时,勾选第一个框:继承全局站点软件包,5就会拥有python3.6的两个opencv库,对比上面的test虚拟环境,不继承就是光秃秃的一个额外的库也没有,没有激活(前面没有虚拟环境名称的括号提示),添加了requests库,此时5中有了额外添加的requests库,而全局库中并没有变化。
最后,博客(2条消息) pip安装包后在pycharm中无法导入,更改python解释器路径后文件夹变红色,pip的正确使用方法等。_看山_的博客-CSDN博客_pycharm的venv是红色的写到:在cmd中下载pip和在pycharm的package中安装pip还是有一定的区别,前者会全部在本地的python解释器中,后者下载的包只能在当前工程中使用,以后新建工程后如果用到其中的一些包还是需要重新下载。
总结: