当前位置: 首页 > 编程笔记 >

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

宿镜
2023-03-14
本文向大家介绍原来我一直安装 Python 库的姿势都不对呀,包括了原来我一直安装 Python 库的姿势都不对呀的使用技巧和注意事项,需要的朋友参考一下

平常我都是直接执行 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库的正确姿势,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

 类似资料:
  • 您可使用手腕姿势来导航 M600。将手腕向内再向外轻快移动来滚动通知与菜单。您还可以摇动您的手腕来退出时钟画面。 您必须启用手腕姿势功能才可使用这些姿势。 启用手腕姿势功能 导航至 Settings(设定)应用程式,找出并轻触 Gestures(手势)。 轻触Wrist gestures (手腕手势)在手腕手势开启(开关为蓝色)和关闭(开关为灰色)之间来回切换。 您可查看如何使用手腕姿势的说明材料

  • 目标 在这个部分,我们将学习利用 calib3d 模块在图像中创建一些3D效果。 基础知识 这将是一个小的章节。在上一次相机校准的过程中,您已经找到相机矩阵,失真系数等等。给定一个模式图像,我们可以利用上面的信息来计算它的姿态,或者物体在空间中的位置如何旋转,它是如何移动的等等。对于一个平面物体,我们可以假设 Z = 0,这样现在问题就变成了如何将相机放置在空间中来观看我们的图案图像。所以,如果我

  • 今天我用immer的时候,发现没有安装成功也可以直接用,给我惊奇坏了,一搜索发现是redux的一个依赖,我粘贴的这段代码是package-lock.json不是package.json,package.json里面完全找不到immerjs,也就是说我根本没安装过。这种情况下,我就直接可以用immer,不用安装了,对把??事实是上可以的,我就是想要再确认一下,这种情况下有没有潜在的问题?还是跟安装之

  • 本文向大家介绍详解webpack提取第三方库的正确姿势,包括了详解webpack提取第三方库的正确姿势的使用技巧和注意事项,需要的朋友参考一下 我们在用webpack打包是时候,常常想单独提取第三方库,把它作为稳定版本的文件,利用浏览缓存减少请求次数。常用的提取第三方库的方法有两种 CommonsChunkPlugin DLLPlugin 区别:第一种每次打包,都要把第三方库也运行打包一次,第二种

  • 要成为一个优秀的前端工程师,需要什么技能和学习?答案:练习 在逛知乎、SegmentFault 又或者是相似的技术社区,我们总会看到类似的问题。新手总会关注于,需要怎样的技能,怎么才能入门?有一点经验的程序员则是,需要练习什么?如若一个程序 员已经懂得问题的关键是,编程需要大量的练习。那么,我想这个程序员已经入了这个行道了。 在我成为所谓的『前端工程师』之前,我没有想到会变成这样的结果。 前端项目