Python自动安装第三方库的小技巧(pip使用详解)
作者:可以叫我才哥 发布时间:2021-07-15 19:32:48
大家好,我是才哥。
最近周末也加班了,害…
有刚接触python的粉丝同学在运行此前《》的完整代码遇到以下问题,然后…
好吧,今天我们就专门介绍一下Python安装第三方库的一些小技巧,其中还包含自动安装的方法哈。
1. pip在线安装
在cmd命令行模式下,通过pip install 第三方库名称
的形式,直接进行第三方库的安装。
我们以安装plotly
为例,安装表现如下:
pip install plotly
如果需要安装的第三方库已经存在,我们执行安装命令的时候会提示其存在且展示库安装的位置,其表现如下:
如果你想卸载第三方库,可以通过pip uninstall 第三方库名称
的形式,直接进行第三方库的卸载。
当然,大家在实际安装的过程中可能还会遇到很多其他问题,大致有如下两种情况:
安装超时
(因为在线安装,会请求第三方库所在的源,默认的源是在海外的,我们请求的时候可能速度过慢导致超时之类的)版本号不匹配
(由于我们的python环境可能存在其他一些库,而库与库之间可能存在依赖关系,如果安装的库版本太新或者太旧都有可能与现有的库存在不匹配而无法正常安装)
对于安装超时的情况,如果继续采用pip在线安装的模式,我们可以在安装的时候指定国内源,其指令方式如下:
pip install plotly -i https://pypi.tuna.tsinghua.edu.cn/simple
国内源
可选项(第3部分我们将介绍如何一劳永逸)
阿里云镜像:http://mirrors.aliyun.com/pypi/simple/
清华大学镜像:https://pypi.tuna.tsinghua.edu.cn/simple/
豆瓣镜像:http://pypi.doubanio.com/simple/
中科大镜像:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
对于版本号不匹配的情况,如果继续采用pip在线安装的模式,我们可以在安装的时候指定版本号,其指令方式如下:
pip install plotly==4.9
指定版本号有以下几种方式:
不指定的情况下,默认安装最新的
== 指定具体版本号
<= 指定最高版本号
>= 指定最低版本号
< 不高于某版本号
> 不低于某版本号
对于非指定具体版本号的情况,需要注意命令形式稍有不同:第三方库及版本号关系需要用引号("")
,否则会出现报错。
pip install "plotly<4.14"
以下为错误示范命令:
pip install plotly<4.14
除了在线安装指定版本号的第三方库之外,我们还可以通过下载指定版本号的第三方库whl文件
,然后pip离线安装,具体我们在第2部分介绍。
2. pip离线安装
有时候,我们直接采用pip在线安装的时候不太能安装到需要的第三方库版本,又或者我们没有联网环境进行pip在线安装。这个时候我们就可以先下载第三方,然后再用pip进行离线安装。
比如,我们还是以plotly
为例,现在某网站下载其文件,然后再本地离线安装。
安装指令如下:
pip install D:\python\自动安装库\plotly-4.14.3-py3-none-any.whl
推荐下载第三方库文件的网站:
那个地方:https://www.lfd.uci.edu/~gohlke/pythonlibs/
Pypi :https://pypi.org/
3. 查看与升级库
我们学会了安装库和卸载库,那么怎么查看我们的环境下有哪些库以及如果这些库更新后本地如何同步更新呢?
关于查看:
通过pip list
可以查看已经安装的库。
通过pip show 库名称
可以查看指定的库。
关于升级:
通过pip list -o
可以查看可升级的库。
通过 pip install --upgrade 库名称
可以升级库。
4. 设置国内源
我们在第1部分pip在线安装中介绍过 指定国内源的命令形式,除此之外,我们也可以创建一个配置文件,将默认的源指定为我们采用的国内源,从而一劳永逸的解决而不需要每次都加上国内源地址。
方法很简单
在当前用户目录下(C:\Users\xx\pip,xx 表示当前使用的用户,比如gongdc)创建一个 pip.ini文件,文件内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
5. pip.main自动安装
以上我们熟悉了python在安装、卸载、升级以及设置国内源等。一般来说,我们编写的python代码都会依赖很多现有的第三方库,这也是学习python相对简单的原因。
大多数情况下,我们需要依赖的库并不直接存在于我们当前的环境,需要先进行安装之后才能正常运行我们的代码。所以,每次我们拿到别人编写好的代码的时候,直接运行的时候可能就会出现报错。
其实,我们在引用库的时候,只需要做以下操作,就可以不需要手动进行依赖库的安装了。
核心:使用
pip.main()
方法进行依赖库的安装(这里穷举了需要用到的库)
# 如果需要引用的库未安装,则自动安装
try:
import requests
import pandas as pd
from bs4 import BeautifulSoup
import jieba
import jieba.analyse
import matplotlib.pyplot as plt
from wordcloud import WordCloud,STOPWORDS
import numpy as np
from PIL import Image
# 使用pip.main()方法进行依赖库的安装(这里穷举了需要用到的库)
except ImportError:
import pip
pip.main(["install", "--user", "requests","beautifulsoup4","jieba","matplotlib","wordcloud","pandas","pillow"])
import requests
import pandas as pd
from bs4 import BeautifulSoup
import jieba
import jieba.analyse
import matplotlib.pyplot as plt
from wordcloud import WordCloud,STOPWORDS
import numpy as np
from PIL import Image
执行以上代码,如果有库未安装则运行结果如下:
6. 其他
除了上述这种自动安装第三方库的方式,我们还可以通过以下方式处理:
import os
libs = ["requests","beautifulsoup4","jieba","matplotlib","wordcloud","pandas","pillow"]
for lib in libs:
os.system("pip install " + lib)
一些报错提示:
报错提示 某某库需要某某库的什么版本号等等
报错提示 Consider using the --user option or check the permissions.
这种情况下,不要惊慌,添加 --user参数即可,参考案例:
pip install --user 第三方库名称
来源:https://blog.csdn.net/dxawdc/article/details/116903304
猜你喜欢
- 1.关系模型序列化1.1 什么是序列化?什么是反序列化?序列化的意思是把字典的形式转化成Json格式。当我们展示数据的时候需要使用。反序列化
- 本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下#coding=utf-8from pymongo imp
- asp之家注:作为一个学习asp的爱好者,相信一定接触过session,我们经常使用session来作为会员登录的验证,当然也可以使用COO
- 昨晚写代码的时候,一不小心把某个代码文件误删了。。。赶紧上网找了一下pycharm如何恢复误删文件,结果还真有。经过操作,成功恢复了误删文件
- 今天一个域名查询系统出现故障,该系统是用的ASP调用XMLHTTP获取whois库的数据,具体错误如下: msxml3.dll 错
- 在开始之前还是提一下三个函数吧:"ob_start()、ob_end_clean()、ob_get_contents()"
- pytorch里面的maxpool,有一个属性叫ceil_mode,这个属性在api里面的解释是ceil_mode: when True,
- 我们熟悉了对象和类的基本概念。我们将进一步拓展,以便能实际运用对象和类。调用类的其它信息上一讲中提到,在定义方法时,必须有self这一参数。
- 使用场景一:如果在一张表中ManayTOManay字段关联的是自身,也就是出项这样的代码:ManyToManyField(self)那么,你
- 一、动机最近打算折腾vn.py,但只有py27版本的,因为一向习惯使用最新稳定版的,所以不得不装py27的环境,不得不说 Python的全局
- 为标签添加背景图片import sysfrom PyQt5.QtGui import *from PyQt5.QtCore import *
- Paramiko是一个用于执行SSH命令的Python第三方库,使用该库可实现自动化运维的所有任务,如下是一些常用代码的封装方式,多数代码为
- 获取一个类的所有子类def itersubclasses(cls, _seen=None): "
- 前言:这种技术一般是基于的GAN(生成对抗网络)来实现,今天我给大家分享一个开源项目,能够复现静态图片动起来效果,可以做些有趣的项目,也可以
- 比如代码 binfo = {'name':'jay','age':20,'pytho
- 本文实例讲述了Python使用sax模块解析XML文件。分享给大家供大家参考,具体如下:XML样例:<?xml version=&qu
- 之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳。 对于他们的耐心我十分敬佩。 但是作为一个程序员,自然也得挑
- 问题:这里只解决一个问题,到底什么是Access?设计一个数据库管理系统,用access在access里面设计好表,查询,然后再用vb做窗体
- 在网上找了各种安装教程,都没有在python3下安装nltk,于是我自己尝试着安装,算是成功了1、首先,假设你的python3已经安装好,并
- SQL Server数据库动态交叉表的参考示例:--建立测试环境set nocount oncreate table test(model