关于如何使用 pip 安装你需要知道的一切

关于如何使用 pip 安装你需要知道的一切

在本文中,我们正在研究使用 pip 将代码安装到虚拟环境中的不同方法。

这些会变得更加复杂,但不用担心,我会全程陪伴您。 拍拍你的背

废话说够了!让我们从简单的事情开始吧。

安装本地存储库

假设以下情况:您刚刚签出了存储库并想要安装需求。

这可以通过使用以下命令轻松完成……当然是在创建虚拟环境之后:

$ python -m venv (name of virtual environment)$ source (name of virtual environment)/bin/activate$ pip install .

如果您想知道安装命令和requirements.txt 的缺失,我有坏消息给您。现在是 2024 年,您不应该再使用requirements.txt。

这当然只是我自己的意见,但我正在使用的所有存储库都有一个 pyproject.toml,我强烈建议在您的每个项目中也使用一个。可行的例外可能是沙箱项目和小脚本。

“为什么”在这里可能会被放错地方,但请允许我给你先睹为快。它不仅允许您自己定义您的需求。您还可以定义用户可以根据需要安装的可选依赖项。

这对于您在生产应用程序中不需要的开发工具特别有用,例如测试库或格式化程序。

但这只是功能列表的开始。它们也是元数据的存放位置,并允许自定义应用程序的入口点。

这里再次安装命令:

$ pip install .

确保您位于可以找到 pyproject.toml 的文件夹中。
这里有一个专业提示,如果您打算使用正在安装的存储库,请使用以下命令

$ pip install -e .

这将执行可编辑的安装,也称为“开发模式”,它允许您迭代测试代码更改,而无需重新安装项目。

这是什么意思?

您是否曾经遇到过这样的情况:您更改了从中导入的模块中的代码,但更改似乎没有生效?

尝试可编辑安装!

插曲:从分支安装

简单问题:如果你想安装特定分支的版本而不是默认分支,你该怎么办?

答案是显而易见的

$ git checkout (branch name)

并重复上面的步骤!对吗?

你个傻瓜,你刚刚激活了我的陷阱卡!

看,从 2.23 版本开始,镇上出现了一个新的东西,可以更直观地切换分支,它的名字叫 git switch。

git checkout 自此已被弃用。

所以不要使用过时的工具在同事面前暴露自己。相反,下次共享屏幕时随意按下 git 开关,让每个人都知道您是认真的。

从私有存储库安装

振作起来!

到目前为止,一切都只是儿戏。现在是时候使用一些大男孩 pip 了。

看,每个人都可以安装包存储库中可用的包,但只知道如何从那里安装意味着您将无法访问私有存储库中的所有黄金。

在将你自己的代码变成包之前测试它也很有帮助。

如果您发现自己处于这种情况,请使用以下命令:

$ pip install git+ssh://git@(your provider)/(owner)/(repo name).git

这里是一个没有占位符的例子,可能会更容易理解。

$ pip install git+ssh://git@github.com/pandas-dev/pandas.git

有趣的事实:“://”之后的所有内容几乎与 git 生成的 ssh 命令相同。但请注意,必须替换斜杠,而不是用于分隔“github.com”和所有者“pandas-dev”的冒号。

如果您想从分支安装……或任何其他相关参考怎么办?

简单!只需在命令末尾添加 @(ref) 即可。所以它看起来像

$ pip install git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x (branch)$ pip install git+ssh://git@github.com/pandas-dev/pandas.git@v2.2.2 (tag)

私人仓库和 pyproject.toml

但是如果从命令行安装软件包还不够怎么办?如果您的构建管道也应该从私有存储库安装怎么办?

希望您同意向管道添加单独的 pip install 语句是不可能的。

所以,让我向您展示要添加到 pyproject.toml 的依赖项部分的内容。 你会发现,它与之前的命令非常相似:

"pandas@git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x",

添加此内容后,再次运行 pip install -e ..

恭喜!您刚刚在您的环境中安装了过时版本的 pandas。您可能想对您需要的实际包重复此操作。

现在让它快点

既然你一直坚持到现在,我会推荐一个额外的工具。

过去几个月我使用了 uv,它是用 rust 编写的 pip(python 生态系统中其他常用工具)的直接替代品。

最大的卖点是它显着加快了虚拟环境的创建和软件包的安装速度。特别是当您重新创建虚拟环境时,因为它使用缓存。我们谈论的是速度快 10 倍……如果缓存是热的,甚至快 100 倍。

好处列表比这长得多,但这也是另一篇文章的内容。所以,现在就尝试一下,稍后再感谢我。

结论

让我们结束这件事吧。

这些是我在工作中使用的所有方式来处理 git 和 pip 之间的相互作用。可能还有其他方法来安装东西,但这应该涵盖 99% 的用例。

我忘记了你最喜欢的命令行技巧吗?那就在评论里分享吧

我希望您通过本文学到了一些新东西,如果您对更多有关软件开发的技术文章感兴趣,请考虑关注。

以上就是关于如何使用 pip 安装你需要知道的一切的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1348930.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 12:27:01
下一篇 2025年12月13日 12:27:15

相关推荐

  • 在深入了解 Nylas 之前需要了解的关键概念

    在深入研究 nylas 之前必须了解的概念 所以,我已经准备好开始使用 nylas 及其强大的 api,但在开始之前,值得花点时间确保我很好地掌握了一些基本概念。这些构建块不仅可以帮助我有效地使用 nylas,还可以使我的开发过程更加顺利和安全。 1.python虚拟环境:保持整洁 让我们从pyth…

    2025年12月13日
    000
  • Python-文件

    文件操作: 文件读取文件写入追加内容 文件读取:以 open(‘logs.txt’, ‘r’) 作为文件: open是python内置函数,用于打开文件。第一个参数是文件名,第二个参数是读取模式。with语句用于自动关闭文件。这将防止内存泄漏,提供更好…

    2025年12月13日
    000
  • 使用 AWS 学习 Python – 第 2 天

    虚拟环境 今天我们将学习虚拟环境。 python 中的虚拟环境是一个容器,所有代码和其他 python 包都驻留在其中。它允许您将 python 配置与系统上的其他版本分开。开发 python 代码时始终使用虚拟环境是一个好主意。 要创建虚拟环境,我们将使用以下命令: python -m venv …

    2025年12月13日
    000
  • Python 库初学者指南

    python 以其简单性和多功能性而闻名,使其成为初学者和专业人士的热门选择。 python 最强大的功能之一是其广泛的库集合。这些库是预先编写的代码的集合,您可以使用它们来执行常见任务,从而节省您的时间和精力。在这篇博客中,我们将探索每个初学者都应该知道的一些基本 python 库。 1.什么是p…

    2025年12月13日
    000
  • tea-tasting:用于 A/B 测试统计分析的 Python 包

    简介 我开发了tea-tasting,一个用于 a/b 测试统计分析的 python 包,具有​​: 学生的 t 检验、bootstrap、cuped 方差缩减、功效分析以及其他开箱即用的统计方法和方法。支持广泛的数据后端,例如 bigquery、clickhouse、postgresql/gree…

    2025年12月13日
    000
  • Python – 字典、集合、元组

    这三个都是python中不同类型的数据结构。这用于存储不同的数据集合。根据我们要求的用例,我们需要在其中进行选择。 字典(dict): 字典是键值对的集合,其中每个键与一个值关联可以根据键值检索数据(基于键的搜索),因为键要求是唯一的。字典在 3.7 之前都是无序的,值可以更改。密钥名称不能直接更改…

    2025年12月13日
    000
  • 精通编码之路初学者指南

    您已经掌握了编码的基础知识。循环、函数,甚至简单的网站都在你的掌握之中。 但是从休闲程序员转变为专业程序员需要什么? 好吧,我在这里帮助正在寻找相同东西的初学者。 让我们潜入吧。 专业心态:不仅仅是代码 解决问题 编码既是关于编写代码,也是关于解决问题。将复杂的问题分解为更小的、可管理的步骤至关重要…

    2025年12月13日
    000
  • 使用 FastAPI 和机器学习构建实时信用卡欺诈检测系统

    介绍 信用卡欺诈对金融业构成重大威胁,每年造成数十亿美元的损失。为了解决这个问题,人们开发了机器学习模型来实时检测和防止欺诈交易。在本文中,我们将逐步介绍使用 fastapi(python 的现代 web 框架)以及在 kaggle 流行的信用卡欺诈检测数据集上训练的随机森林分类器构建实时信用卡欺诈…

    2025年12月13日
    000
  • Jupyter Notebooks 作为端到端分析解决方案

    介绍 你醒了。您查看待办事项列表,发现团队成员有一项任务。他们希望您进行某种分析并生成报告。请求本身相对复杂,这意味着您可能需要使用问题陈述对其进行分解,从数据源中提取数据,进行探索,收集您的见解,然后向团队成员讲述您的发现故事。 解决这个问题的方法如下: 在任务跟踪平台(例如 Trello、Jir…

    2025年12月13日
    000
  • python程序语言运算符

    python 将运算符分为以下几组运营商类型算术运算符赋值运算符比较运算符 逻辑运算符按位运算符会员经营者 节目 算术运算符 算术运算符是数值是数学运算符1.添加2.减法3.乘法4.划分5.模块6.楼层划分 添加 a=3b=2打印(a + b)欧/普5 减法 a=6b=5打印(a-b)欧/普1 乘法…

    2025年12月13日
    000
  • 在 AWS 中转换文件更快、更便宜:Polar 或 Pandas?

    两者都提供了广泛的工具和优势,这可能会让我们在某些时候怀疑选择两者中的哪一个。这并不是要改变公司的所有流程,以便他们开始使用 polars 或 pandas“死亡”(这不会在不久的将来发生)。这是关于了解其他可以帮助我们降低流程成本和时间、获得相同或更好结果的工具。 当我们使用云服务时,我们会优先考…

    2025年12月13日
    000
  • 从 Javascript 过渡到 Python:初学者之旅

    我的全栈开发之路 作为成为全栈开发人员的旅程的一部分,我从 javascript 和 react 开始。在成功完成这些技术的项目后,我开始学习 python、sql 并创建自己的 cli 菜单。这个变化既令人兴奋又充满挑战,因为 python 的简单性最初让我怀疑它是否真的那么容易。 拥抱 pyth…

    2025年12月13日
    000
  • DevOps 中脚本语言的力量:日复一日的 DevOps 工具系列

    欢迎来到“50 天 50 个 DevOps 工具”系列的第 26 天!今天,我们将把重点从特定工具转移到 DevOps 和 IT 自动化的基本方面——脚本语言。脚本编写是 DevOps 中自动化、编排和配置管理的支柱。了解如何有效地使用脚本语言可以显着提高 DevOps 工程师的效率和生产力。 什么…

    2025年12月13日
    000
  • 利用 AI 促进内容创作:引入 AI 博客文章生成器

    在当今快节奏的数字世界中,内容为王。无论您是博主、营销人员还是企业主,创建高质量、引人入胜的内容对于增加流量和扩大在线影响力至关重要。但让我们面对现实吧,写作可能既耗时又具有挑战性,尤其是当您同时处理多项任务时。这就是人工智能博客文章生成器的用武之地! ? 什么是人工智能博客文章生成器? AI 博客…

    2025年12月13日 好文分享
    000
  • 关于棋盘的一个

    每周挑战 281 很抱歉在过去的几周里我没能做到。我搬了家,换了新工作,所以这段时间没有机会参与挑战。 穆罕默德·s·安瓦尔 (mohammad s. anwar) 每周都会发出“每周挑战”,让我们所有人都有机会为两周的任务提出解决方案。我的解决方案首先用python编写,然后转换为perl。这对我…

    2025年12月13日
    000
  • 人口统计数据集分析

    你好, 由于我最近沉浸在 Python 数据分析中,今天我成功地使用了我的第一个 Jupyter 笔记本。它的灵感来自于 freeCodeCamp 的练习。 ? 它看起来像什么? 笔记本本身怎么样? 基于简单的方法,该笔记本具有练习目的,专为想要掌握 Python 数据分析的初学者而设计。 我邀请大…

    2025年12月13日
    000
  • 如何为初学者使用 Python 创建“猜数字”游戏

    什么是“猜数字”游戏? 在这个游戏中,计算机随机选择一个数字,你必须猜测它是什么。每次猜测后,计算机都会告诉您您的猜测是否太高、太低或恰到好处。当您猜对数字时游戏结束,并且它还会告诉您尝试了多少次。 让我们开始吧! 第1步:导入随机模块首先,我们需要导入随机模块。该模块帮助我们生成一个随机数,您将尝…

    2025年12月13日
    000
  • 使用 pytest-mask-secrets 保护测试机密

    保持敏感数据的安全和私密是软件开发的首要任务。应用程序日志是常见的泄漏媒介之一,受到仔细保护,以防止出现秘密。同样的担忧和风险也适用于测试日志,它可能会泄露密码或访问令牌。运行 ci 工作流程的工具通常提供一种机制,可以轻松屏蔽日志中的敏感数据。虽然这非常方便、高效且易于使用,但在某些情况下,这可能…

    2025年12月13日
    000
  • BiRefNet 最先进的最新最好的背景批量删除应用程序

    birefnet 最先进的最新最好的背景批量删除应用程序。 birefnet 是最新发布的最先进的背景去除开源模型。它比我们所知道的最好的 bria mbg v1.4 好得多。 官方仓库:https://github.com/ZhengPeng7/BiRefNet 从以下网址下载APP和安装程序:h…

    2025年12月13日
    000
  • MyPy简介

    介绍 mypyc++0b24f9d990aea8bfc2101d73a0>1 是 python 的静态类型检查器。与 c++ 或 java 等静态类型语言不同,python 是动态类型的。这意味着在 python 中,您不必显式声明变量的类型;它是在运行时推断的。例如: python(动态类型…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信