如何以智能方式安装 Python

Python易于使用,对初学者友好,功能强大,几乎可以为任何应用程序创建强大的软件。

但与任何其他软件一样,Python 的设置和管理可能很复杂。

在本文中,我们将介绍如何正确设置 Python。

您将学习如何选择合适的版本、如何防止多个版本相互干扰以及如何避免出现尖锐问题和潜在的陷阱。

选择正确的 Python 版本和发行版

在任何一个时间点,Python 的几个不同版本都在积极接收更新或至少是安全修复。

您可能认为选择最新版本是有意义的。

但是,为了与第三方模块兼容,选择比当前版本落后一个主要修订点的 Python 版本始终是最安全的。

在撰写本文时,Python 3.12 是最新发布的版本。因此,最安全的做法是使用最新更新的 Python 3.11。

您可以随时以可控的方式试用最新版本(稍后会详细介绍),但回退一个版本可以保证与常见的第三方 Python 包的最佳兼容性。

Python 和 Linux 一样,也有各种发行版。但与 Linux 不同的是,Python 提供了一个您可以随时使用的黄金标准“官方”版本:CPython,这是Python.org上 Python 软件基金会提供的版本。

这是最安全、兼容性最广泛的发行版,没有人会因为使用它而被解雇。您可能还想研究其他针对特定用例的 Python 发行版,但我们不会在这里讨论它们。

您可能需要做出的一个关键选择(尤其是在 Windows 上)是使用 32 位还是 64 位版本的 Python。最有可能的答案是 64 位,原因如下:

大多数现代操作系统默认使用 64 位版本的 Python。Windows 用户可以在 64 位 Windows 上运行 32 位版本的 Python,但性能会略有下降。

32 位 Python 和 32 位应用程序通常一次只能访问 4GB 内存。64 位应用程序没有此限制,因此许多 Python 数据分析和机器学习工具在 64 位版本中效果最佳。有些工具仅提供 64 位版本。

只有在你只能使用 32 位版本的 Windows 时,或者你需要使用仅在 32 位版本中提供的第三方模块时,你才应该选择 32 位版本的 Python。由于这种情况越来越少见,因此 64 位是常见的选择。

如何在 Windows 上安装 Python

Python 在 Windows 上的安装方式与任何其他应用程序类似,通过安装程序引导您完成安装过程。

默认情况下,Windows 版 Python 安装程序会将其可执行文件放在用户AppData目录中,这样就不需要管理权限了。

如果您是系统上的唯一用户,您可能希望将 Python 放在更高级别的目录中(例如C:\Python312),以便于查找。Windows 安装程序允许您指定目标目录。

为 Windows 选择正确的 Python 安装程序

Python.org 为 Windows 提供了各种版本的 Python。

除了前面提到的 32 位(“x86”)和 64 位(“x86-64”)版本外,您还可以选择可嵌入的 zip 文件、可执行安装程序和基于 Web 的安装程序。以下是这些版本的全部内容:

可执行安装程序:只是一个.exe运行 Python 安装过程的文件。这是最简单的默认选择,也是最常用的。

基于 Web 的安装程序:与可执行安装程序相同,只是它会单独下载执行安装所需的部分。这大大减少了实际安装程序的大小,但当然,它需要网络连接。

可嵌入的 zip 文件:是 Python 运行时的独立、最小副本,可放在单个文件夹中,没有任何依赖项。

当您想要手动分发 Python 应用程序,或者需要快速、一次性安装 Python 来动态测试某些东西时,捆绑它很有用。

但是可嵌入的 zip 不包含pip完整安装附带的任何其他有用工具,因此仅供专家使用。

使用 Windows 包管理器安装 Python

另一个选择是使用 Windows 包管理系统之一来安装 Python。

Windows 11 现在预装了微软自己的包管理解决方案Winget。(如果您使用的是 Windows 10,则可以手动安装winget。)

您可以通过指定版本从 Python.org 安装 Python 的官方版本,例如: winget install Python.Python.3.11,或者使用winget search Python.Python来查找可用的版本。

其他 Windows 包管理工具也提供 Python。.NET 的包管理器 NuGet在其存储库中提供 Python。但是,提供 Python 主要是为了将其用作.NET 应用程序中的组件,而不是作为一种安装 Python 独立实例以供一般使用的方式。

如果您以常规方式安装 Python,您可能会发现 Python 实例更易于管理。

Chocolatey是一款更通用的 Windows 包管理系统,也提供 Python。

Chocolateywinget是一种运行 Python 安装程序和跟踪系统中 Python 语言运行时存在的便捷方式,因此它是比 NuGet 更好的选择。

但是,最好避免在同一系统上混合使用 Chocolatey 安装、Python 安装和手动安装。最好总体上确定一个包管理解决方案并坚持使用。

如何在 Linux 上安装 Python

由于 Linux 发行版差异很大,在 Linux 上安装 Python 的典型方法是使用特定发行版的包管理器。

例如, Ubuntu和Fedora安装 Python 的过程完全不同。在 Linux(和 macOS)上,安装的目标目录通常是预先确定的,并基于 Python 版本号,例如/usr/bin/python3.X在 Linux 上,或/usr/local/opt/python/在 Mac 上。

另一个用于管理多个 Python 安装的 Linux 工具是pyenv。它允许您安装多个并行的 Python 版本,并在它们之间自由切换,无论是系统范围还是每个项目。

请注意,它pyenv会构建您为系统安装的每个版本的 Python,因此您需要事先安装 Python 构建依赖项。

避免处理 Linux 包管理器的复杂性的一种方法是使用容器化的 Python 运行时。容器独立于系统的其余部分运行,因此您不必担心不同的 Python 运行时会相互干扰。

但是,如果您的工作流程尚未包含容器,则需要投入时间和精力来熟悉 Docker。(请注意,您也可以在 Windows 上使用容器化的 Python。)

如何在 macOS 上安装 Python

传统上,macOS 会预装一个版本的 Python,但最新版本不会高于 Python 2.7。

当 Python 3 问世时,这带来了问题,因为这两个版本经常发生冲突。

官方 Python 文档对此有一些说明,但除了确保您使用所需的 Python 实例的正确路径之外,它没有提供任何更详细的建议。

在 macOS 上管理 Python 运行时的常用方法是通过Homebrew 包管理器,这是一个非官方(即不是 Apple 创建的)项目,已成为 Mac 上包管理的事实标准。

Homebrew 提供了一致的界面,用于下载、安装、管理和删除 Python 和其他第三方命令行应用程序。

Python 安装技巧和应避免的陷阱

我们讨论了在 Windows、Linux 和 macOS 上安装 Python 的基础知识。

最后,我们来总结一下三种需要更多技巧的常见安装场景。 

如何不安装 Python 包(以及如何安装)

一旦设置了 Python 版本的基础安装,就不要开始直接在其中安装软件包pip—不,即使您只打算在一个项目中使用 Python。

设置您的项目目录,在其中安装 Python 虚拟环境,然后将软件包安装到这些虚拟环境中。这样,基础安装就会保持干净。

要以高级方式管理具有虚拟环境和依赖项的多个项目,请查看Poetry 项目。Poetry 提供了一个命令行工具,用于高级管理虚拟环境和依赖项。

如何并排安装多个 Python 版本

处理 Python 安装时最困难的问题是如何处理并排安装的不同版本的 Python。这里适用两个通用经验法则:

始终将每个版本安装在不同的目录中。

确保所有系统路径都配置为首先指向您想要默认运行的版本。

运行多个 Python 版本强烈支持每个项目都使用虚拟环境。激活虚拟环境后,项目上下文中的所有 Python 活动都会自动定向到正确的 Python 版本。

对于 Windows 用户来说,另一个选项是py启动器应用,它允许您控制在安装多个 Python 版本时使用哪个版本。

在 Python 安装过程中,您可以选择安装启动器py,这是一个小型可执行文件,允许您(通过命令行标志)选择要为给定脚本使用哪个版本的 Python。

例如,要运行pipPython 3.11,您需要输入py -3.11 -m pip。

如何在虚拟环境中升级 Python 版本

Python 的小版本升级(例如,从 Python 3.11.2 升级到 Python 3.11.3)通常相当容易。

在 Windows 上,安装程序会检测现有版本并对其进行升级。

在 Linux 和 macOS 上,安装程序或包管理器通常会执行相同的操作。

但是,您创建的任何虚拟环境也需要升级;它们不会自动升级。要在虚拟环境中升级 Python,只需导航到虚拟环境目录并输入venv --upgrade。再次注意,这仅适用于小点修订升级。

如果您要执行重大点修订升级,例如从 Python 3.11 升级到 Python 3.12,最好的办法是使用venv在项目目录中创建一个新的、单独的虚拟环境子目录,将任何依赖项重新安装到其中,然后切换到使用新的虚拟环境。

大多数支持 Python 的 IDE(例如 Microsoft Visual Studio Code)都会检测项目中的多个虚拟环境并允许您在它们之间切换。

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

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

相关文章

学习笔记——动态路由——RIP(附加度量值配置)

六、附加度量值配置 RIP协议cost开销值:默认值为0,路由信息每传递一次,值增加1,最大15,(路由器不能超过15台)16代表不可达。 入接口附加度量值 rip metricin 5 //可以修改开销改变路径。只能增加,不能减小 …

count(*) over (partition by ……)用法详解

select id,count(*) over(partition by pro_id) from sal; 以pro_id分组,统计分组后每个pro_id的记录总数及对应的id; 类似还有count(*) over(order by ……)、sum(amount) over(partition by ……)等,略有区别

降低企业运营成本的API服务有哪些?

通过API服务,企业可以实现许多功能和服务的自动化和优化,从而有效降低企业的运营成本。API服务可以帮助企业简化流程、减少人工操作、提高效率,并提供数据支持和决策依据,从而实现成本的有效控制和降低。无论是人力资源管理、客户…

【D3.js in Action 3 精译】1.2.2 可缩放矢量图形(一)

译注 由于 1.2.2 小节介绍 SVG 的篇幅过多,为了方便查阅,后续将分多个小节依次进行翻译。为了确保整个 1.2.2 小节的完整性,特意将上一篇包含的 SVG 小节的内容整理出来重新编排。敬请留意。 1.2.2 SVG - 可缩放矢量图形 可伸缩矢量图形&…

【Spring Cloud Alibaba AI】简单使用

本文基于官方文档。 Spring AI 官方文档:Spring AI :: Spring AI Reference 中文文档:Spring AI 简介 - spring 中文网 (springdoc.cn) Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用…

道路元素位置和方向的坐标系统: 点 线 面 连接点

道路元素位置和方向的坐标系统: 下图道路元素在地球坐标系中的位置,该位置由三个坐标轴(x, y, z)组成的笛卡尔坐标系来确定。这种描述特别适用于三维建模和地理信息系统(GIS)中,其中道路被视为一个三维模型…

使用 position:absolute; 定位的元素在ios上被遮盖

在ios上一个元素使用position:absolute;定位后,被其它元素遮盖 在使用absolute的元素上加一行代码 -webkit-transform: translate3d(0, 0, 0);

[渗透测试] 任意文件读取漏洞

任意文件读取漏洞 概述 漏洞成因 存在读取文件的功能(Web应用开放了文件读取功能)读取文件的路径客户端可控(完全控制或者影响文件路径)没有对文件路径进行校验或者校验不严格导致被绕过输出文件内容 漏洞危害 下载服务器中的…

Compiled blocks

目录 一,编译块 Compiled Block 二,编译循环 三,调用编译块 Invoke 四,Tips and notes 一,编译块 Compiled Block 在几何体网络内,可将网络的一部分放入编译块(compiled block)内…

jenkins nginx自动化部署 php项目

在当今快速发展的IT领域,自动化部署已成为提高工作效率和减少错误的关键。Jenkins作为持续集成/持续部署(CI/CD)的佼佼者,结合Docker容器技术和PHP编程语言,以及Ansible自动化工具,可以实现高效、可靠的自动…

基于DeepNLP AI Store真人点评和ShowCase分享社区-AI for Image Generator

来源 quora 社区: https://deepnlpaistore.quora.com/ github: https://rockingdingo.github.io/deepnlp/store/image_generator 内容 DeepNLP AI Store 网址:http://www.deepnlp.org/store/image-generator 网站针对图像生成类别 Image Generator下多个AI工具如 …

CS与MSF的权限互相传递/mimikatz抓取windows 2012明文密码

目录 CS和MSF的简单介绍 Metasploit Cobalt Strike 1、CS权限传递到MSF 2、MSF权限传递到CS 3、使用mimikatz抓取明文密码 通过修改注册表用户重新登录后抓取明文密码 今天的任务是两个 一个是CS与MSF的权限互相传递一个是抓取windows2012的明文密码 那就分别来完成 …

云计算基础技术

云计算基础技术概览 计算类产品主要提供算力,支持业务运行,例如网站、办公软件、数据分析等计算能力,目前典型的产品主要是虚拟化和容器,在公有云上的云主机本质也是虚拟机。网络类产品主要满足资源的网络连通性和隔离&#xff0c…

软考初级网络管理员__软件单选题

1.如下图所示,在IE“Intemet选项”对话框的()选项卡中可指定电子邮件程序。 常规 内容 高级 程序 2.在Excel的A1单元格中输入函数“ROUND(1/3,3)”,按回车键之后,A1中的值为()。 1 1/3 0.34 0.333 3.在输入Word文档过程中,为了防止意…

Pinia的基本用法

Pinia的安装和引入 1.安装Pinia npm install pinia2. 在vue项目的main.js文件中引入pinia import { createApp } from vue import { createPinia } from pinia import App from ./App.vueconst pinia createPinia() const app createApp(App)app.use(pinia) app.mount(#ap…

日志打印中对容器(包括多级容器)的通用输出

在日志打印中,往往有打印一个数组、集合等容器中的每个元素的需求,这些容器甚至可能嵌套起来,如果每个地方都用for循环打印,将会特别麻烦。基于这种需求,作者尝试实现一个通用的打印函数SeqToStr(),将容器序…

线上民族传统服饰商城

摘 要 随着互联网的不断发展和普及,电子商务成为了人们生活中不可或缺的一部分。传统的线下购物方式逐渐被线上购物所取代,人们越来越习惯在互联网上购物。而民族传统服饰作为我国丰富多样的民族文化的重要组成部分,具有独特的艺术价值和商业…

unity VR Interaction Framework 创建新手势

提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、新建物体,并添加必要组件二、添加抓取点三、查看手势的可视化样式四、制作新的手势1.点击编辑2.根据需求调节手指关节3.保存手势4. 使用创建的手势5.运行 总结 前言…

远程过程调用协议gRPC及在go环境下的使用

1. 远程过程调用协议 1.1 定义 远程过程调用(Remote Procedure Call,PRC是一种进程间通信技术,它使得程序可以像调用本地函数一样调用远程服务器上的函数。RPC 屏蔽了底层的通信细节,让开发者能够更专注于业务逻辑,而无需关心网络…

无源电压继电器 JDY-1210AW 导轨安装 约瑟JOSEF

系列型号: JDY-1002AW电压继电器;JDY-1002B电压继电器; JDY-1110AW电压继电器;JDY-1110B电压继电器; JDY-1220AW电压继电器;JDY-1220B电压继电器; JDY-1100AW电压继电器;JDY-110…