首页 > 编程语言 >Python包管理入门

Python包管理入门

时间:2024-07-17 22:30:14浏览次数:9  
标签:依赖 入门 管理 Python numpy install pip 安装

包管理器,是现代项目管理的重要组成部分,许多现代编程语言也会推出统一的包管理器以提升开发者体验,如rust 的cargo,nodejs 的npm,arkts 的ohpm等等。
Python 作为一门很“新”的语言,自然也提供包管理功能。

Python包管理的前世今生

如果要提到Python的包管理,那么必定绕不开PYPI(Python Package Index,中文:Python 包索引)。其由 Tarek Ziade 在2003年发起,起初只是一个简单的仓库用来存储和分发 Python 软件包,但随着时间推移,PYPI 逐步完善,成为我们现在所看见的 PYPI.org。
image
回归正题,Python 早期并没有包管理工具,开发者需要手动从PYPI上下载源代码,构建,最后放置到site-packages文件夹。这种情况持续到2004年,Jim Hugunin创建了easy_install工具,极大地改善了这个过程,当然其也有很多问题。


2008年,Jason R. Coombs发起pip项目,其相较easy_install,依赖管理更加优秀,并且引入了虚拟环境的概念,解决了全局包冲突的问题。2014年,Python Software Foundation宣布将pip作为官方推荐的包管理器,并将其集成到Python的标准库中。这意味着所有新版本的Python都将自带pip,使得安装和管理包变得更加方便。

安装PIP

pip现已集成至部分版本的 Python 安装包中,你可以通过如下命令检查当前是否已安装 Python:

python -m pip --version

如果该命令执行出错,那么你可能需要考虑自行安装 pip。


pip作为python的重要组件,其安装相对比较简单。您可以通过执行get-pip.py文件,在任意Python环境中安装pip。当然,你也可以使用以下针对各个操作系统(发行版)的特定安装方法:

ArchLinux(Pacman)

对于使用 Pacman 管理包的 Linux 发行版,你可以通过如下命令安装 pip:

sudo pacman -Syu python-pip

Debian(Apt)

Debian 与其衍生发行版提供了 Python2 与 Python3 两个版本的pip,你可以通过如下命令分别安装它们:

sudo apt-get install python-pip # python2
sudo apt-get install python3-pip # python3

使用PIP

pip的使用场景有很多,这里就一个使用场景进行简单的演示:

  • 管理项目依赖

管理项目依赖

从 默认的 PyPi 源安装

pip install <package-name>

例如,要安装一个名为 requests 的包,可以使用下面的命令:

pip install requests

默认安装最新版。要安装指定版本:

pip install requests==1.0.0

从指定地址(本地或Git仓库)安装

从本地安装

pip install /local/path/to/a/package

从 Git 仓库安装

pip install pip install git+https://github.com/user-name/repo-name.git

从依赖列表文件批量安装
假设文件名是 requirements.txt,

pip install -r requirements.txt

更多选项:

使用 -t 选项安装到指定路径
使用 -e 选项从随时更新变化的软件包源码安装(开发中的软件包)
安装依赖包的更多详情可参考官方文档,例如从本地索引源或其它镜像索引查找和安装包。

查看已安装的包信息

pip show <package-name>

例如,要查看 numpy 包的信息,可以使用下面的命令:

pip show numpy

这样,pip 就会显示 numpy 包的相关信息,例如包名、版本、依赖等。

升级依赖包

pip install --upgrade <package-name>

例如,要升级 numpy 包到最新版本,可以使用下面的命令:
pip install --upgrade numpy

删除依赖包

pip uninstall <package-name>

例如,要删除 numpy 包,可以使用下面的命令:

pip uninstall numpy

列出已安装的依赖包信息

pip list

可以使用一些参数来过滤包。例如,可以使用 -o--outdated 参数来列出所有已过期的包,使用 -u--uptodate 参数来列出所有已更新的包。

导出依赖包信息

pip freeze

输出到 requirements.txt 文件

pip freeze > requirements.txt

后记

关于pip的更多用法,你可以查阅pip的官方文档

标签:依赖,入门,管理,Python,numpy,install,pip,安装
From: https://www.cnblogs.com/hiyms/p/18263390/python-package-guide

相关文章

  • 客户管理必备:快捷操作,提升客户体验感!
    企业如何才能在第一时间回应客户问询并快速解决客户常见的问题呢?不妨试试微信管理系统,它有很多快捷操作功能,可以帮助企业做好多微信聚合管理,实现降本增效的目的,同时还能即时解决客户问题,提升客户满意度,从而减少客户的流失。一、多微信聚合聊天  无论企业有多少个微信号,系......
  • Python入门基础 2--变量与基本数据类型
    1、程序员必备修养---注释注释=说明文档,说明代码的作用,让别人或者自己看代码的时候可以更好理解相关含义因为注释是给开发人员看的,不会参与程序运行python有两种注释方式:   1.单行注释-->用#符号表示,在#后面的内容都是注释print('第二篇文章')#这是输出语句 ......
  • 我从 Python 潮流周刊提取了 800 个链接,精选文章、开源项目、播客视频集锦
    你好,我是豌豆花下猫。前几天,我重新整理了Python潮流周刊的往期分享,推出了第1季的图文版电子书,受到了很多读者的一致好评。但是,合集和电子书的篇幅很长,阅读起来要花不少时间。所以,为了方便大家阅读,我打算将合集进一步整理,分门别类将原始内容的标题罗列出来。本文总计约800......
  • Python读Excel数据,创建Word文档上下文字典列表,元素为字典(新)
    #读Excel数据,创建Word文档上下文字典列表,元素为每个培训人员的上下文字典defcreate_docx_context_dict_list(_excel_path):"""输入参数::param_excel_path:Excel全路径功能:创建Word文档上下文字典列表,元素为每个培训人员的上下文字典字典的键为......
  • 【头歌】HBase开发: Java API 管理表 答案
    专栏已收集头歌大数据所有答案第一关JavaAPI获取表的列表:packagestep1; importjava.util.ArrayList;importjava.util.List; importorg.apache.hadoop.conf.*;importorg.apache.hadoop.hbase.*;importorg.apache.hadoop.hbase.client.*;importorg.apache.......
  • C#基础入门
    C#作为一门高级编程语言,其实他和Java非常类似,如果有学习过Java语言的小伙伴,应该会对C#特别熟悉。如果你对C#语言不熟悉也没有关系,本文将会从头开始带你熟悉C#的知识点。在学习之前,我们要明白:每天学习做好笔记,思维导图。不是为了以后更好复习,而是为了能够更好的梳......
  • 分块入门
    基本思想把一个需要操作的序列分成若干块,分别处理,从而优化时间复杂度。容易证明块长为\(\sqrtn\)时复杂度最优。分块常规单次操作复杂度为\(\mathcal{O}(\sqrtn)\),一般可以当做\(\mathcal{O}(\log^2n)\)来计算复杂度。接下来给几道例题。T1给出一个长为\(n\)的数列......
  • 什么是大模型?(超详细)大模型从入门到精通,看这一篇就够了
    大模型的定义大模型是指具有数千万甚至数亿参数的深度学习模型。近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果,如自然语言处理,图片生成,工业数字化等。为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。大模......
  • ROS服务通信机制实操Python
    ROS服务通信机制实操Python步骤流程vscode配置服务端客户端编辑配置文件编译并执行优化实现参数的动态提交优化先启动客户端后启动服务端ROS服务通信的理论查阅:ROS服务通信流程理论ROS服务通信的自定义srv数据的准备可以查阅:ROS服务通信自定义srv在模型实现中,ROSm......
  • Python实现基于http通信的protobuf数据传输的案例,包括请求者和接收者
    个人名片......