原来我一直安装 Python 库的姿势都不对呀

作者:mrr 时间:2021-03-28 10:42:41 

平常我都是直接执行 pip install 安装的第三方库,很多教程也是这么介绍的,一直以来我都认为这是标准的、正确的安装 Python 第三方库的姿势。直到我最近看到Python核心开发者Brett Cannon 写的一篇文章。

简单总结来说,他认为其实最正确的安装方式是使用 python-m pip 来执行 pip 命令,无论什么情况下均是如此。

他在文章里大致提出了以下几个建议:

  1. 建议用 python-m pip 安装三方库

  2. 务必使用虚拟环境,不要安装至系统 Python

  3. 建议用 pipx 独立安装工具

  4. 建议用 python-m venv 创建虚拟环境

  5. 可以将容器整体作为一个环境,跳过虚拟环境

我简单解释下每个建议背后的理由。

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 中。

总结

以上所述是小编给大家介绍的安装python库的正确姿势网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://snarky.ca/why-you-should-use-python-m-pip/

标签:安装,python库
0
投稿

猜你喜欢

  • Python人工智能深度学习CNN

    2023-11-27 06:19:15
  • MySQL数据库的多种连接方式及工具

    2024-01-13 10:37:14
  • Python机器学习之决策树算法实例详解

    2022-10-06 07:24:37
  • CentOS7系统搭建LAMP及更新PHP版本操作详解

    2024-05-22 10:07:38
  • Django如何实现上传图片功能

    2023-04-23 17:35:01
  • python matplotlib中文显示参数设置解析

    2022-11-18 14:11:41
  • python数组和矩阵的用法解读

    2023-07-13 07:38:18
  • Transpose 数组行列转置的限制方式

    2023-11-09 08:30:45
  • 解决SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法

    2024-01-22 08:24:14
  • 基于Python制作一个简单的文章搜索工具

    2021-07-08 02:16:28
  • 从go语言中找&和*区别详解

    2024-04-30 10:04:50
  • 一个完美网站的101项指标.第四部分.设计

    2008-02-29 22:22:00
  • python 教程之blinker 信号库

    2023-11-23 10:15:51
  • python+selenium+chromedriver实现爬虫示例代码

    2021-03-05 02:53:23
  • 用python做游戏的细节详解

    2022-02-08 05:18:39
  • python生成可执行exe控制Microsip自动填写号码并拨打功能

    2023-08-11 04:51:00
  • MySQL Community Server 8.0.11安装配置方法图文教程

    2024-01-26 06:02:45
  • 完全卸载MYSQL

    2011-02-23 12:11:00
  • Python多线程获取返回值代码实例

    2023-03-25 17:42:27
  • python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)

    2023-06-07 22:58:05
  • asp之家 网络编程 m.aspxhome.com