网站首页 > 技术文章 正文
优质文章,第一时间送达!
分享一篇之前的文章,里面的这个Python知识点,可能很多人都还不清楚。
平常我都是直接执行 pip install
安装的第三方库,很多教程也是这么介绍的,一直以来我都认为这是标准的、正确的安装 Python 第三方库的姿势。直到我最近看到Python核心开发者Brett Cannon 写的一篇文章。
简单总结来说,他认为其实最正确的安装方式是使用 python-m pip
来执行 pip 命令,无论什么情况下均是如此。
他在文章里大致提出了以下几个建议:
建议用
python-m pip
安装三方库务必使用虚拟环境,不要安装至系统 Python
建议用 pipx 独立安装工具
建议用
python-m venv
创建虚拟环境可以将容器整体作为一个环境,跳过虚拟环境
我简单解释下每个建议背后的理由。
1. 建议用 python-m pip 安装三方库
理由是这样做,可以实现更加准确地控制库所安装的位置。
不少人的电脑里,会同时安装不同版本的 Python。少数极端的用户甚至会安装不同的小版本,如 3.7 和 3.7.4。这是直接用 pip的话,你自己可能都不清楚最终安装到了哪个版本的Python 下面。
而 python-m pip
命令,可以让你直接指定要安装到哪个版本。
2. 务必使用虚拟环境,不要安装至系统 Python
这个建议应该很多人都认同,在实践中也是这样执行的。如果不用虚拟环境隔离的话,系统版本的三方库会变得特别的庞杂,甚至出现系统依赖库的版本不合理,导致系统崩溃的严重问题。
3. 建议用 pipx 独立安装工具
如果你想尝试 black、mypy 等开发工具,可以考虑通过 pipx 将这些工具各自安装到独立的环境中,同时又能够直接在系统环境下调用终端的入口。
4. 建议用 python-m venv 创建虚拟环境
Brett 个人更倾向于使用 python-m venv
命令创建虚拟环境,理由和第一点建议相同,可以获得更大的控制权,精确指定所使用的版本。
当然,使用 virutalenv 也是一个非常普遍的方式。
5. 可以将容器整体作为一个环境,跳过虚拟环境
如果项目是容器化开发的,那么把每个容器当做成一个个独立的虚拟环境使用也是没有问题的。在容器里没有必要再单独去创建虚拟环境了。
当然前提是,你不要安装到系统自带的 Python 中。
大佬的文章链接:https://snarky.ca/why-you-should-use-python-m-pip/
以上。
猜你喜欢
- 2025-01-11 Python国内第三方镜像下载
- 2025-01-11 Python其实很简单 第十四章 模块
- 2025-01-11 TTS它又来了!OpenVoice一款借鉴于TTS实现的强大AI语音克隆工具
- 2025-01-11 一段获取磁盘空间信息的python脚本
- 2025-01-11 Qt 调用Python引擎混合编程
- 2025-01-11 如何利用Python开发一个Web网站路径扫描工具?
- 2025-01-11 Pydantic:强大的Python 数据验证库
- 2025-01-11 新一代Python包管理工具来了
- 2025-01-11 python 基础(四)
- 2025-01-11 Python每日一库之orjson
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)