解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程

所属分类: 脚本专栏 / python 阅读数: 767
收藏 0 赞 0 分享

一、问题具体描述:

  在cmd控制台 pip install xxxx 后并显示安装成功后,并且尝试用cmd 的python 中import xxxx ,没有显示异常,说明这个库是安装成功了的。(这里以安装 virtualenv 为例:)

但是在PyCharm中导库时却出现了问题,会显示该模块不存在!!!(即在一个项目文件中,import一个未安装的第三方库文件,PyCharm会显示波浪线,即表示此库未安装。)

那怎么解呢?下面就来简单分析一下。

    之前有问老师这个问题,老师说这是PyCharm这个软件的bug……然后就没有然后了。那要用这个库怎么办?于是我就自个去琢磨了一下:

二、解决方法

1、方法一:在PyCharm下载第三方库(即把之前下的库作废,这里重新再下一次……)

1.点击菜单栏File,选择Settings。

2.选中当前项目,然后点击右边“+”,添加第三方库

3.(1).搜索栏,搜索所需库。(2).查看该库的当前最新版本。(3).如果有需要下载所需版本(因为有些库之间版本要相互匹配的,这里不深究,遇到你就会懂……)(4).点击下载按钮下载

下载成功:

4.回到编辑页面,可以看到,没有错误了,表明已成功导入。

注:这个可以说是解决了“pip下载成功,pycharm识别不了的问题”,而且这也是一个完整的pycharm安装第三方库的方法。

但是如果你说你不喜欢用这种方法,就要坚持用 pip 呢?那就接着往下看:

2、方法二:坚持用pip的方法安装第三方库

1.这里我就新建一个项目:new_project,里面新建一个文件:new_file ;再次导库,如你所见,又出现红色波浪线了,还是识别不了!!!这是怎么回事呢?在上面的方法一中不是已经下载好这个库了吗?!带着疑惑往下看:

2.点击菜单栏File,选择Settings(和上面一样):会发现这里的依赖库,空空如也……(奇怪吗?我这前下好的virtualenv 库呢?)

3.接下里看下这个:project  interpreter(项目解释器,学python还是要了解一下这个东东的!如果不知道解释器是啥意思,那我建议:出门左转找度娘(百度),出门右转找哥哥(谷歌))。

       这里有两个解释器(为什么下面再详解),一个是该项目目录下的,另一个是python安装目录下的(注:我的python安装路径为:G:\python-3.7.1),新建项目,好像默认是用该项目目录下的解释器的(当然这个设置在新建项目时是可以修改的,这里只讲默认的),我们应该把这个改成python安装目录下的解释器。

4.改完后:一大波之前下载过的第三方库全出来了,(注意看最后一个是刚下载的库virtualenv ),OK,问题完美解决!!!

5.那为什么要这样呢?我们一起来具体分析下:这就涉及到pip install 安装路径问题(见下文……)

三、扩展延伸——pip install 安装路径问题

1.注:我的python安装路径为:G:\python-3.7.1,而“python.exe”(python解释器)文件也在该目录下:

2. windows下python的pip install 安装路径为:G:\python-3.7.1\Lib\site-packages,这里面放的都是下载的第三方库。(可以看到最后面两个,就是我之前用cmd下载的库virtualenv)

3.(1).接下来看下:项目路径:G:\Workspaces\python\new_project

(2).而新建项目时,pycharm会在该项目里面新建一个解释器(现在应该知道上面为什么会有两个解释器了吧,就是这个原因!!!),该解释器路径:G:\Workspaces\python\new_project\venv\Scripts

(3).而在 G:\Workspaces\python\new_project\venv\Lib\site-packages 路径下同样是放第三方库的!!!

4.那么问题来了,这有“两个解释器,两个第三方库”,具体是要用那个呢?

   这个是遵守“就近原则”的!

即:python安装目录解释器就用该目录下的库,项目的解释器就用项目里面的库! 

5.(1)回到之前的问题:“pip成功,pycharm识别不了”,这就是因为新建项目默认解释器是用“项目的解释器”的,但是pip安装的第三方库是在python安装目录下,所以会识别不了。

     (2)在(1)的基础上我们使用方法一安装第三方库,也就是把第三方库下载到项目目录下的第三方库存放目录下(即:\venv\Lib\site-packages),所以它就可以识别了(但是其实这里下载了两个同样的第三方库了,只是存放路径不同罢了。)

      (3)之前提到的第二种方法,就是修改默认解释器为“python安装目录解释器”,这样它就可以识别pip下载的库了。(个人比较喜欢方法二,不解释……)

更多精彩内容其他人还在看

使用Python写一个量化股票提醒系统

这篇文章主要介绍了小白用Python写了一个股票提醒系统,迷你版量化系统,完美的实现了实时提醒功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python绘制的二项分布概率图示例

这篇文章主要介绍了Python绘制的二项分布概率图,涉及Python基于numpy、math的数值运算及matplotlib图形绘制相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Python Learning 列表的更多操作及示例代码

这篇文章主要介绍了Python Learning-列表的更多操作,需要的朋友可以参考下
收藏 0 赞 0 分享

关于python列表增加元素的三种操作方法

这篇文章主要介绍了关于python列表增加元素的几种操作方法,主要有insert方法,extend方法和append方法,每种方法给大家介绍的非常详细,需要的朋友可以参考下
收藏 0 赞 0 分享

如何在python字符串中输入纯粹的{}

这篇文章主要介绍了如何在python字符串中输入纯粹的{}以及python字符串连接的三种方法,需要的朋友可以参考下
收藏 0 赞 0 分享

浅谈Django的缓存机制

这篇文章主要介绍了浅谈Django的缓存机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Django 限制用户访问频率的中间件的实现

这篇文章主要介绍了Django 限制用户访问频率的中间件的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

示例详解Python3 or Python2 两者之间的差异

这篇文章主要介绍了Python3 or Python2?示例详解两者之间的差异,在本文中给大家介绍的非常详细,需要的朋友可以参考下
收藏 0 赞 0 分享

Python wxpython模块响应鼠标拖动事件操作示例

这篇文章主要介绍了Python wxpython模块响应鼠标拖动事件操作,结合实例形式分析了Python使用wxpython模块创建窗口、绑定事件及相应鼠标事件相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

使用Python实现一个栈判断括号是否平衡

栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top)。这篇文章主要介绍了使用Python实现一个栈判断括号是否平衡,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多