python 基础 -- 安装Python模块

作为一个流行的开源开发项目,Python拥有一个由贡献者和用户组成的活跃支持社区,他们还根据开源许可条款向其他Python开发人员提供他们的软件。

这允许Python用户有效地共享和协作,从其他人已经创建的常见(有时甚至是罕见的!)问题的解决方案中受益,以及潜在地向公共池贡献他们自己的解决方案。

本指南涵盖了该过程的安装部分。有关创建和共享您自己的Python项目的指南,请参阅发行版指南。

对于企业和其他机构用户,请注意,许多组织在使用和贡献开源软件方面都有自己的政策。在使用Python提供的发行版和安装工具时,请考虑这些策略。

1、关键术语

  • pip 是首选的安装程序。从Python 3.4开始,它默认包含在Python二进制安装程序中。
  • 虚拟环境(virtual environment)是一种半隔离的Python环境,它允许安装包供特定应用程序使用,而不是在系统范围内安装。
  • venv是创建虚拟环境的标准工具,自Python 3.3以来一直是Python的一部分。从Python 3.4开始,默认将pip安装到所有创建的虚拟环境中。
  • virtualenvvenv的第三方替代品(也是前身)。它允许在3.4之前的Python版本上使用虚拟环境,这些版本要么根本不提供venv,要么无法自动将pip装到创建的环境中。
  • Python包索引是开放源码许可包的公共存储库,可供其他Python用户使用。
  • Python Packaging Authority是一个由开发人员和文档作者组成的组织,负责维护和发展标准打包工具以及相关的元数据和文件格式标准。他们在GitHub和Bitbucket上维护各种工具、文档和问题跟踪器。
  • distutils是1998年首次添加到Python标准库中的原始构建和分发系统。虽然直接使用distutils正在逐步被淘汰,但它仍然为当前的打包和分发基础设施奠定了基础,它不仅仍然是标准库的一部分,而且它的名字以其他方式存在(例如用于协调Python打包标准开发的邮件列表的名称)。

在3.5版更改:现在建议使用venv创建虚拟环境。

Python Packaging User Guide: Creating and using virtual environments

2、基本用法

标准打包工具都被设计为可以从命令行使用。

下面的命令将从Python包索引中安装模块的最新版本及其依赖项:

python -m pip install SomePackage

对于POSIX用户(包括macOS和Linux用户),本指南中的示例假设使用虚拟环境。
对于Windows用户,本指南中的示例假设在安装Python时选择了调整系统PATH环境变量的选项。

也可以直接在命令行上指定精确或最小版本。当使用比较符操作符,如><或其他特殊字符时,包名和版本应该用双引号括起来:

python -m pip install SomePackage==1.0.4    # specific version
python -m pip install "SomePackage>=1.0.4"  # minimum version

正常情况下,如果一个合适的模块已经安装,尝试再次安装它将没有效果。升级现有模块必须明确请求:

python -m pip install --upgrade SomePackage

关于pip及其功能的更多信息和资源可以在Python打包用户指南中找到。

虚拟环境的创建通过venv模块完成。将包安装到活动虚拟环境中使用上面所示的命令。
Python Packaging User Guide: Installing Python Distribution Packages

3、如何做

这些是一些常见任务的快速答案或链接。

在Python 3.4之前的Python版本中安装pip ?

Python在Python 3.4中才开始捆绑pip。对于早期版本,pip需要像Python打包用户指南中描述的那样被“引导”。

Python Packaging User Guide: Requirements for Installing Packages

仅为当前用户安装软件包?

--user选项传递给python -m pip install将只为当前用户安装包,而不是为系统的所有用户安装包。

安装科学Python包?

许多科学Python包具有复杂的二进制依赖关系,并且目前不容易直接使用pip进行安装。此时,对于用户来说,通过其他方式安装这些包通常比尝试使用pip安装它们更容易。

Python Packaging User Guide: Installing Scientific Packages

并行安装多个版本的Python ?

在Linux, macOS和其他POSIX系统上,使用版本化的Python命令结合-m开关来运行相应的pip副本

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4

还可以使用适当版本的pip命令。
在Windows上,结合-m开关使用py Python启动器:

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

4、常见安装问题

4.1 在Linux上安装系统Python

在Linux系统上,Python安装通常会作为发行版的一部分包含。安装到这个Python安装需要对系统具有root访问权限,如果使用pip意外升级组件,可能会干扰系统包管理器和系统其他组件的操作。

在这样的系统上,使用pip安装包时,最好使用虚拟环境或为每个用户安装一个。

4.2 pip未安装

默认情况下可能不会安装pip。一个可能的解决办法是:

python -m ensurepip --default-pip

还有用于安装pip的其他资源。

4.3 安装二进制扩展

Python通常严重依赖于基于源代码的发行版,最终用户被期望从源代码编译扩展模块作为安装过程的一部分。

随着对二进制wheel格式的支持的引入,以及通过Python包索引至少在Windows和macOS上发布wheel的能力,这个问题有望随着时间的推移而减少,因为用户更经常地能够安装预构建的扩展,而不是需要自己构建它们。

一些用于安装尚未作为预构建的wheel文件提供的科学软件的解决方案也可以帮助您获得其他二进制扩展,而无需在本地构建它们。

Python Packaging User Guide: Binary Extensions

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Word怎么转换成PDF文档?多个Word转换成PDF步骤分享

word文档是一种非常好用的文件格式&#xff0c;可以帮助用户们很好的保存图片和文字内容&#xff0c;不过并不是只有word这一种文档类文件格式&#xff0c;还有一种pdf文档也深受用户们的欢迎&#xff0c;在工作或者学习过程中这两种文档是可以互相转换格式的&#xff0c;那么W…

【ArcGIS Pro二次开发】(61):样式(Style)和符号(Symbol)

在 ArcGIS Pro SDK 中&#xff0c;地图要素符号&#xff08;Symbol&#xff09;和符号样式&#xff08;Style&#xff09;是2个很重要的概念。 【Symbol】是用于表示地图上不同类型的要素&#xff08;如点、线、面&#xff09;的图形化表示。 在地图中&#xff0c;各种要素都…

Spark项目Java和Scala混合打包编译

文章目录 项目结构Pom完整文件编译查看 实际开发用有时候引用自己写的一些java工具类&#xff0c;但是整个项目是scala开发的spark程序&#xff0c;在项目打包时需要考虑到java和scala混合在一起编译。 今天看到之前很久之前写的一些打包编译文章&#xff0c;发现很多地方不太对…

springboot+docker实现微服务的小例子

【任务】&#xff1a; 创建一个服务A&#xff1a;service_hello 创建一个服务B&#xff1a;service_name service_name负责提供一个api接口返回一个name字符串。 service_hello负责从这个接口获取name字符串&#xff0c;然后进行一个字符串拼接&#xff0c;在后面加一个hello&…

软考高级系统架构设计师系列论文七十七:论软件产品线技术

软考高级系统架构设计师系列论文七十七:论软件产品线技术 一、摘要二、正文三、总结一、摘要 本人在测井行业的一个国有企业软件开发部工作,从2021年初开始,我陆续参加了多个测井软件开发项目,这些项目都是测井行业资料处理解释软件,具有很强的行业特征,其开发方向和应用…

基于flask的python和C#的联合调用3

一、c#的jeson的解析 1.1 下载c#能够调用的jeson的dll库 将动态库&#xff0c;引用添加。 将c#的主文件中&#xff0c;添加头文件 using Newtonsoft.Json; using Newtonsoft.Json.Converters;

从零开始学习 Java:简单易懂的入门指南之时间类(十七)

时间类 第一章 Date类1.1 Date概述1.2 Date常用方法 第二章 SimpleDateFormat类2.1 构造方法2.2 格式规则2.3 常用方法2.4 练习1(初恋女友的出生日期)2.5 练习2(秒杀活动) 第三章 Calendar类3.1 概述3.2 常用方法3.3 get方法示例3.4 set方法示例&#xff1a;3.5 add方法示例&am…

Go语言里面的各种疑难杂症

什么是闭包&#xff1f;闭包有什么缺陷&#xff1f; func AddUpper() func(int)int{var n int 10return func (x int) int{n nxreturn n} }func main(){f : AddUpper()fmt.Println(f(1))//11fmt.Println(f(2))//13fmt.Println(f(3))//16 }&#xff08;1&#xff09; AddUpper…

重排链表(C语言)

题目&#xff1a; 示例&#xff1a; 思路&#xff1a; 这题我们将使用栈解决这个问题&#xff0c;利用栈先进后出的特点&#xff0c;从链表的中间位置进行入栈&#xff0c;寻找链表的中间位置参考&#xff1a;删除链表的中间节点&#xff0c;之后从头开始进行连接。 本题使用…

【C++】异常

异常 前言正式开始C语言传统的处理错误的方式C异常概念异常的使用异常的抛出和捕获自定义异常体系实际中的应用异常的重新抛出 异常安全异常规范C标准库的异常体系异常的优缺点 前言 从这篇开始&#xff0c;我后面的几篇可以算是C的收尾了。 本篇讲异常。 正式开始 先说说C…

MyBatis分页插件PageHelper的使用及特殊字符的处理

目录 一、PageHelper简介 1.什么是分页 2.PageHelper是什么 3.使用PageHelper的优点 二、PageHelper插件的使用 原生limit查询 1. 导入pom依赖 2. Mybatis.cfg.xml 配置拦截器 3. 使用PageHelper进行分页 三、特殊字符的处理 1.SQL注入&#xff1a; 2.XML转义&#…

Arduino程序设计(四)按键消抖+按键计数

按键消抖按键计数 前言一、按键消抖二、按键计数1、示例代码2、按键计数实验 参考资料 前言 本文主要介绍两种按键控制LED实验&#xff1a;第一种是采用软件消抖的方法检测按键按下的效果&#xff1b;第二种是根据按键按下次数&#xff0c;四个LED灯呈现不同的流水灯效果。 一…

什么是负载均衡

前提概述 关于负载均衡&#xff0c;我会从四个方面去说 1. 负载均衡产生的背景 2. 负载均衡的实现技术 3. 负载均衡的作用范围 4. 负载均衡的常用算法 负载均衡的诞生背景 在互联网发展早期&#xff0c;由于用户量较少、业务需求也比较简单。对于软件应用&#xff0c;我们只需要…

《Zookeeper》源码分析(二十)之 Follower

目录 Follower创建Follower实例followLeader()findLeader()connectToLeader()registerWithLeader()syncWithLeader() FollowerZooKeeperServer Follower Leader选举结束后&#xff0c;成为Follower的服务器开始进行Follower的工作&#xff0c;过程如下&#xff1a; 与Leader…

计算机终端核心安全配置规范

声明 本文是学习 政务计算机终端核心配置规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 范围 本标准提出了政务计算机终端核心配置的基本概念和要求&#xff0c;规定了核心配置的自动化实现方法&#xff0c;规范了核心配置实施流程。 本标准适…

【Terraform学习】使用 Terraform 创建Amazon VPC(Terraform-AWS最佳实战学习)

使用 Terraform 创建Amazon VPC 实验步骤 前提条件 安装 Terraform&#xff1a; 地址 下载仓库代码模版 本实验代码位于 task_vpc 文件夹中。 变量文件 variables.tf 在上面的代码中&#xff0c;您将声明&#xff0c;aws_access_key&#xff0c;aws_secret_key和 区域变量…

pxe linux7,PXE+Kickstart 实现自动安装系统

部署准备 服务器 操作系统&#xff1a;rhel7.7 软件准备&#xff1a; rhel-server-7.5-x86_64-dvd.iso、rhel-server-7.7-x86_64-dvd.iso 客户机 硬件配置&#xff1a;至少2G以上内存 基础环境准备 关闭selinux sed -i “s/SELINUXenforcing/SELINUXdisabled/g” /etc/…

Linux搭建SSLVpn

安装http、ssl服务 编辑http配置文件 修改http的136行&#xff0c;276行以及990行 1、136行将监听端口注释 2、276行和990行修改为自己的域名和要访问的端口 修改http文档最后那部分 新添ssl配置信息&#xff0c;将端口修改为443&#xff08;截图错了server.key应该放在/etc/…

jenkins Linux如何修改jenkins 默认的工作空间workspace

由于jenkins默认存放数据的目录是/var/lib/jenkins&#xff0c;一般这个var目录的磁盘空间很小的&#xff0c;就几十G,所以需要修改jenkins的默认工作空间workspace 环境 jenkins使用yum安装的 centos 7 正题 1 查看jenkins安装路径 [rootlocalhost jenkins_old_data]# rpm…

【80天学习完《深入理解计算机系统》】第九天 3.2 数据传送指令【mov】【栈和堆】【leaq】【一元操作】【二元操作】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…