不会这些,就不要再说自己精通pip了
liuian 2024-12-06 17:23 26 浏览
Python 之所以易于学习,而且功能强大,离不开有大量的可用三方包来实现相应的功能,而安装这些三方包就离不开一个工具 pip,当需要哪个包支持的时候,只需要 pip install 包名就可以快速安装使用。本文将详细介绍 pip的详细功能,让大家能领略到更多的功能。
PyPI(Python Package Index)
在介绍 pip 之前,先介绍一下 PyPI,从字面意思就能直观的看明白,PyPI 就是存放 Python 包的地方,类似于一个仓库,学过 Java 的同学可以理解为 maven 仓库,而 pip 就是用来管理包的 ,类似于 mvn。
pip 使用
pip(package innstaller for python)可以非常方便的管理三方包,诸如,安装,列举,更新,删除等操作,只需一行命令就可完成。
- 安装 Python 包
这个是在开发中最常使用的命令,各种包的安装都需要使用此命令,但是这里边有很多细节
- 安装指定包
pip install 包名
# 这样安装的三方,会使用当前包的最新版本。
- 安装指定版本的包
pip install 包名==版本号
# 安装指定版本包
pip install 包名>=版本号
# 安装版本号大于给定版本
- 安装环境文件指定的包
pip install -r requirements.txt
# 安装requirements.txt 按照文件中的版本
# -r 表示reference, 引用
- 更新包版本
更新包版本一般用于升级当前包的版本,如果想要降级版本可以使用 pip install 中指定版本号来完成。
pip install -U 包名
# 这里的u是大写的,也可以使用下边语句
pip innstall 包名 --upgrade
# 更新版本会将指定包升级到最新版本
# 升级pip自己
pip install --upgrade pip
- 卸载三方包
有安装必有卸载,卸载也非常容易,只需要在 install 前加 un 即可。
# 卸载指定包
pip uninstall 包名
# 卸载环境配置中所有包
pip uninstall -r requirements.txt
- 列出当前环境安装的包
这里之所以强调当前环境,是因为如果我们使用来虚拟环境,则只会列出虚拟环境安装的包,全局环境的并不会展示。
pip list # 列出所有的包
pip list -o # 列出所有可升级的包
- 显示包的信息
使用 show 命令可以查看指定包的目录以及一些使用帮助信息
pip show 包名
- 查看已安装包及其版本
freeze 有冻结的意思,这里表示 Output installed packages in requirements format.
pip freeze # 列出所有的安装包及其版本
pip freeze > requirements.txt # 将信息写入到环境文件中
pip freeze 和 pip list 展示出的内容基本相似,只不过用于环境导出。
- 下载三方包
下载三方包的主要用处是方便环境的迁移,如果目标机器不支持联网,这时我们就无法使用 pip install 来装,所以就可以借助 pip download 来下载所有需要的三方包到目标机器(更多的时候是客户方为了机器安全,禁止访问互联网)。
pip download -d 目录 包名 # 下载单个离线包
pip download -d 目录 -r requirements.txt # 批量下载离线包
通过上述方式,就可以将三方包下载到指定的目录中。
下载完的三方包后缀名为 whl, 并且包含其依赖的其他包。
- 安装离线三方包
上一步我们下载来所需的离线安装包,这里我们安装指定的安装包
pip install --no-index --find-links=/目录/ 包名 #安装单个离线包
pip install --no-index --find-links=/目录/ -r requirements.txt # 批量安装离线包
更换安装源地址
在我们使用 pip 的时候是不是经常会出现 timeout 的情况,或者即使下载下载成功来,也需要很久,这是因为 python 中默认地址是国外的 pypi,不过,现在国内有很多提供下载的服务。最常用的是清华和阿里的(当然还有其他很多选择,根据实际情况来)。
- 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
如上,我们使用 -i 的参数,来指定源地址为清华服务器,只不过这样只对当前命令生效。
- 全局生效
配置全局源地址需要修改配置文件,路径C:\Users\ 用户名 \AppData\Roaming\pip\pip.ini,内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
如果 Roaming 中没有 pip 文件夹,需要新建文件和文件,如果看不到 Roaming 文件夹,需要将文件夹显示模式设置为,隐藏可见。
修改完成后,可以看到在不指定的情况下,会查找 indexes 配置的内容。这就省了我们每次下载都需要带源地址参数。
相关推荐
- 苹果ios打包的ipa应用APP怎么不能安装?多种安装不上的原因排查
-
亲爱的同学们,非常高兴能和同学们一起探讨关于苹果应用安装失败的问题。作为一个开发者,我们很可能会遇到这样的情况:开发好一个应用,兴致勃勃地想把它运行到手机上去测试,结果发现安装失败了。而此时,定位问题...
- Flutter 系列 - 环境搭建
-
#头条创作挑战赛#本文同步本人掘金平台的文章:https://juejin.cn/post/7002401225270362143Flutter作为火热的跨端工具包,在github上超过12...
- XV6 操作系统入门系列-01-环境配置
-
xv6是一个用于教育目的的简单Unix操作系统,基于Unix第六版(Version6,V6)开发,运行在RISC-V处理器上。它由麻省理工学院(MIT)开发,用于操作系统课程(Ope...
- 速递|已获2000万美元融资,苹果前高管携Unblocked挑战代码理解“黑箱难题”
-
图片来源:Unblocked每位开发者都有自己独特的编码风格。尽管公司制定了最佳实践并编写了文档,开发者要理解他人的代码库仍非易事。为解决这一问题,DennisPilarinos开发了一款名为U...
- C语言之编译器集合
-
C语言有多种不同的编译器,以下是常见的编译工具及其特点:一、主流C语言编译器1.GCC(GNUCompilerCollection)特点:开源、跨平台,支持多种语言(C、C++、Fortran...
- Xamarin for Visual Studio v4.0正式发布
-
XamarinforVisualStudio让开发者可以在Windows上用VisualStudio开发原生iOS,Android和Windows应用程序。XamarinforVis...
- macOS/iOS开发必备:Dylib文件的深度解析与安全防护
-
在macOS和iOS开发中,dylib文件是开发者们不可或缺的工具。它不仅能够实现代码复用、减少内存占用,还能支持程序的模块化更新。然而,随着技术的发展,dylib文件的安全性也面临着诸多挑战,例如被...
- 微软Islandwood项目启动:iOS应用轻松移植至Win10
-
IT之家讯5月1日消息,在昨天的Build2015开发者大会上,微软详细阐述了iOS应用程序移植到Win10平台的更多细节信息。现在,微软正式开启了ProjectIslandwood,该项目旨在搭...
- macOS26中被库克删掉的启动台,有开源的项目实现了
-
这是一个第三方实现的,只实现了最基本的功能,包括:启动台应用程序文件夹打开应用删除应用为什么要做这个macOS26版本中,自带的启动台功能被库克老小子删除了,导致使用起来很不习惯。所以就自己做了...
- 环境配置劝退?Rust + Slint开发环境搭建全攻略,手把手教你避坑!
-
各位对科技充满好奇,又跃跃欲试想亲手写代码的朋友们!是不是每次下定决心要学习一门新语言、尝试一个新框架时,都会被“环境配置”这第一道坎儿给劝退?下载一堆软件,安装各种工具,然后面对一堆看不懂的错误提示...
- MyEclipse移动开发教程:构建可分发的PhoneGap应用程序
-
本教程将用PhoneGap远程构建服务(remotebuildservices)去构建一个PhoneGap应用程序。当然,你也可以在本地构建PhoneGap应用程序。需要多说一句的是,Phone...
- Android和iOS应用可以快速移植到Win10
-
|责编:刘菲菲在今天凌晨的Build2015开发者大会上,微软宣布所有Android和iOS应用,都可以通过简单的修改代码,直接生成适用于Win10的应用。也就是说,开发者们不需要学习更多内容,就...
- Injection for Xcode:成吨的提高开发效率
-
本文为投稿文章,作者:@没故事的卓同学直接放demo演示动图:我很久以前就希望有这么一种功能,直接修改某行代码,F5一下就能刷新这个实例,而不用重写build整个项目。靠夭,我不是在说前端!没想居然有...
- 抖音品质建设 - iOS启动优化《原理篇》
-
前言启动是App给用户的第一印象,启动越慢用户流失的概率就越高,良好的启动速度是用户体验不可缺少的一环。启动优化涉及到的知识点非常多面也很广,一篇文章难以包含全部,所以拆分成两部分:原理和实践。本...
- 蓝鸥郑州iOS培训老师分享的iOS支付知识
-
最近常用朋友问iOS支付方面的问题,郑州iOS培训老师就和大家分享一些关于iOS支付方面的知识,希望对大家有所帮助。支付宝iOS使用支付宝进行一个完整的支付功能,大致有以下步骤:1>先与支付宝...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
飞牛OS入门安装遇到问题,如何解决?
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)