背 景
PyCharm作为Python编写的丝滑IDE环境,用起来自然丝滑无比,尤其是有个下载包的功能,非常方便,如图1,当PyCharm检测到你要使用的包不存在时,可以鼠标移上去,点击弹出来的Install package ……
,就行,但是有的时候,会提示安装失败,安装失败后该怎么做呢?
图2位于PyCharm整个界面的右下方,蓝色线条,点击一下可以查看安装依赖包经度,不论安装成功失败,安装完成后都会有提示消息,图2内提示安装失败,多次尝试,都安装失败;
坑一:尝试pip install好,PyCharm自动引用
于是先在shell窗口(linux下)
或者cmd窗口(windows)
利用pip install 包名
的方式先安装好,但是pip install报错,具体如下,版本号可能不一致,但是就说你的pip版本太低,要求更新;
WARNING: You are using pip version 19.3.1; however, version 20.0.2 is available.
这个时候可以采用以下方式来更新pip,先查看下自己的pip版本是否真的如提示所说;
C:\Users\rowyet>pip --version
pip 19.3.1 from c:\users\yanghang\appdata\local\programs\python\python37\lib\site-packages\pip (python 3.7)
再利用中国(国内)的pypi
镜像网站https://pypi.douban.com/simple
更新pip版本,基本能成功,其他更新pip版本的方式,真的试了不少,都不行,成功更新好pip后,就可以愉快的利用pip install 包
了。
C:\Users\rowyet>python -m pip install --upgrade pip -i https://pypi.douban.com/simple
Looking in indexes: https://pypi.douban.com/simple
Collecting pip
Downloading https://pypi.doubanio.com/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
|████████████████████████████████| 1.4MB 2.2MB/s
Installing collected packages: pip
Found existing installation: pip 19.3.1
Uninstalling pip-19.3.1:
Successfully uninstalled pip-19.3.1
Successfully installed pip-20.0.2
镜像站点是将网站的多个副本放置不同的服务器,这样可能提高反应速度,用户可以在访问较少或相对速度较快的服务器上取得信息。目前国内的常用镜像站网址有:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣 http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
设置方法,以清华镜像源为例:
临时使用: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xx
永久设置: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
坑二:pip install好了包,为啥PyCharm识别不了
我明明在在shell窗口(linux下)
或者cmd窗口(windows)
利用pip install 包名
的方式安装成功了,而且我硬写好代码,在本地采用以下
python my_python_file
也能执行,为啥我的PyCharm就是识别不了呢?
解决方法一
废弃掉原来依赖的包,重新下载,做法:点击菜单栏的File
选择Setting
,在图3,上选择Project:你的项目名
下的Project Interpreter
,图3蓝色区域内就是你的目前有的依赖包,我们发现,确实没有需要的BeautifulSoup
,这时我们点击+
号,跳转到图4;
图4的黄色框内是目前有名气的Python依赖包枚举,太多了,可以再搜索框上输入名字检索,然后选择你要的包后右边红色框内会出现描述,同时必要的情况下你还可以选择包的版本,选择好以后然后点击Install Package
安装包,基本能安装成功,除非你没网,安装成功后会跳转图5界面,提示你安装成功,然后图3的界面蓝色框内也会新增刚刚你安装的包,再回到你的python程序,你会发现报错也消失了,而且这也是一个完整的pycharm安装第三方库的方法,最准确的做法。
同理当你明确不需要再用一个包的时候,你只需要选中包,点一下图3的-
号,就会自动uninstall
该依赖包,成功uninstall
后也会有提示。
解决方法二
要真正的解决pip install好了包,PyCharm识别不了的问题,那我们要先了解一些常识;
pip install ……的包在哪?
答案: 所有pip install的包都在你的python.exe
文件(即python安装的目录)同级别目录下的Lib\site-packages\
下,文件夹分布如下所示;
python/ # python安装目录
├ python.exe # python应用启动程序
├ Lib/ # log文件夹,存放操作日志
│ ├ site-packages/
│ ├ 所有的依赖包
│ ├ 其他文件及文件夹
├ 其他文件及文件夹
所以当你使用pip
的同时,你需要注意你的pip
版本,包装在什么地方,如下在windows cmd 窗口输入pip --version
,得到我的依赖包最终会写入d:\dev\anaconda3\lib\site-packages
,同时根据刚刚说的文件夹分布规则,那我断定 d:\dev\anaconda3\python.exe
也是有的。
C:\Users\ruoyin>pip --version
pip 20.1.1 from d:\dev\anaconda3\lib\site-packages\pip (python 3.7)
也可以使用以下方式得到site-packages
的位置,进入python的黑框环境,输入以下函数返回得到;
[ruoyin@shucang-10 ~]$ python
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from distutils.sysconfig import get_python_lib
>>> print(get_python_lib())
/data/tools/anaconda/anaconda3/lib/python3.7/site-packages
>>> exit()
[ruoyin@shucang-10 ~]$
知道以上消息,那就好办了,不是说pip install BeautifulSoup
在windows的cmd窗口成功安装了吗?那只要去文件夹下d:\dev\anaconda3\lib\site-packages
验证下,发现如图6,果然是存在的;
我们先把BeautifulSoup
点击-
号uninstall
掉,程序又报错了。
点击菜单栏的File
选择Setting
,如图6,上选择Project:你的项目名
下的Project Interpreter
,图6蓝色区域内就是你的目前有的依赖包,我们发现,确实没有需要的BeautifulSoup
,这是你点击图6Add(此处本来应该是是个设置的齿轮标识,点一下就成了图中的样子)
,跳转图7;
图7其实就是建立PyCharm的虚拟机的一个过程,如果不用PyCharm以及生产上的程序,基本都是部署在Python虚拟机上跑的,关于python虚拟机的运用,可以参考博客python虚拟机;
Base interpreter
:你可以理解为虚拟机的解析器,为什么明明pip成功了却在PyCharm里面识别不了,这个就是主要原因之一,可能这个值不等于你刚刚pip安装包同一文件夹的python.exe
导致的,这里你需要更换成你刚刚pip安装包同一文件夹的python.exe
;Location
: 基本只要在你的Python的Project目录下新增一个venv
文件夹就行,如D:\workspace\untitled2\venv
,作用是选一个虚拟机的工作目录。Inherit global site-packages
:理解中文意思就很好理解,问你是否要继承site-packages
文件夹下的依赖包,site-packages``是啥应该没忘记吧?没错就是
pip install `安装的相关的包,所以这个选项要勾上;Make available to all projects
: 如果你希望你所有的项目都新增一个虚拟机环境,且都引用这个解析器,你可以勾上,一般不勾;
注意:如果你上面某个步骤错了,导致还是没有解决这个问题,这时候你不用急着删除项目,重新建一遍什么的,你只需要在刚刚Location
值改一下,如D:\workspace\untitled2\venv2
,这样代表你创建了一个新的python虚拟机,是不是然后再把相应的选项按照需求理解的勾选好,就行了,是不是非常的人性化,赞不赞?虚拟机的个数原则上不限制,只要文件夹不重复就行。
勾选完以后点击OK
,然后跳回图8,会把你在windows cmd
窗口上pip install ……
的依赖包全部加载过来,加载完了以后你查看下会发现刚刚的BeautifulSoup
也在里面,然后程序也不报错了,完美解决。