大连市中心是哪个区,昆明seo网站建设,wordpress 简单幻灯片插件,免费企业网站cms系统一、说明 介绍如何管理 Python 依赖项和一些虚拟环境最佳实践。 以下文章是有关 Python 数据工程系列文章的一部分#xff0c;旨在帮助数据工程师、数据科学家、数据分析师、机器学习工程师或其他刚接触 Python 的人掌握基础知识。迄今为止#xff0c;本初学者指南包括#… 一、说明 介绍如何管理 Python 依赖项和一些虚拟环境最佳实践。 以下文章是有关 Python 数据工程系列文章的一部分旨在帮助数据工程师、数据科学家、数据分析师、机器学习工程师或其他刚接触 Python 的人掌握基础知识。迄今为止本初学者指南包括 第 1 部分Python 包数据人员入门第 1 部分共 2 部分探讨了 Python 模块、Python 包的基础知识以及如何将模块导入您自己的项目。第 2 部分Python 包数据人员入门第 2 部分共 2 部分介绍了依赖项管理和虚拟环境。第 3 部分构建 Python 项目的最佳实践涵盖了构建项目的 9 个最佳实践和示例。第 4 部分从 Python 项目到 Dagster 管道我们探讨了设置 Dagster 项目以及数据资产的关键概念。第 5 部分环境变量 在 Python 中我们将介绍环境变量的重要性以及如何使用它们。第 6 部分类型提示或类型提示如何减少错误。第 7 部分工厂模式或学习设计模式它们是软件设计中常见问题的可重用解决方案。 生成更大、更复杂的包时通常需要使用项目中其他包中的代码。这就是管理依赖关系变得重要的地方。 让我们谈谈今天 Python 中的依赖管理是什么样子的。我们将涵盖所有内容包括如何使用新旧方法管理 Python 包、不同的依赖项管理工具以及如何使用虚拟环境管理它们。 目录 管理依赖关系以旧方式管理依赖项setup.py以新方式管理依赖关系pyproject.toml安装“附加功能”替代 Python 依赖管理工具虚拟环境 二、管理依赖关系 依赖项是包正常工作所依赖的其他包。跟踪依赖项可能是一项挑战但有一些工具可以帮助您有效地管理它们。 其中一个工具是Python Package IndexPyPI它是开源Python包的中央存储库。可以使用 PyPI 搜索可包含在项目中的包并使自己的包可供其他人使用。 在以下各节中我们将介绍在 Python 项目中管理 依赖项的两种不同方法使用 的旧方法和使用 的新方法。setup.pypyproject.toml 2.1 以旧方式管理依赖项setup.py 在引入之前推荐的方法是使用文件来管理Python项目中的依赖关系。pyproject.tomlsetup.py setup.py是包含在项目根目录中的文件其中包含有关包及其依赖项的信息。该文件由 pipPython 的软件包安装程序用于安装您的软件包及其依赖项。 下面是一个文件示例setup.py from setuptools import setup, find_packagessetup(nameyour-package-name,version0.0.1,descriptionA brief description of your package,authorYour Name,author_emailyour.emailexample.com,packagesfind_packages(),install_requires[dependency1,dependency2,],
) 和是必填字段用于指定包的名称和版本。nameversion该字段提供包裹的简要说明。description和字段指定包负责人的姓名和电子邮件地址。该字段指定项目中包含的包。该函数用于自动查找项目中的所有包。authorauthor_emailpackagesfind_packages()该字段是包正常运行所需的依赖项列表。在此示例中包依赖于另外两个包依赖项 1 和依赖项 2。install_requires 若要安装包的依赖项可以运行以下命令 pip install -e . 该选项告诉 pip 执行“可编辑”安装这允许您对软件包进行更改而无需重新安装它。命令末尾的 指定当前目录即包的根目录。-e. 重要的是要注意当您运行上述命令时pip 将在全局环境中安装依赖项这在您处理多个项目时可能会产生问题。此问题已通过虚拟环境解决本文稍后将对此进行介绍。 2.2 以新方式管理依赖关系pyproject.toml pyproject.toml是一种新的文件格式用于替换用于管理 Python 项目中依赖项的 setup.py。它是作为PEP 518和PEP 621的一部分引入的。 这是一个配置文件pip 用来安装你的包及其依赖项。与它相比它具有更简单的格式并且更易于阅读和维护。setup.py 下面是一个pyproject.toml文件的示例 [project]
name your-package-name
version 0.0.1
description A brief description of your package
authors [Your Name your.emailexample.com][project.dependencies]
dependency1 ^1.0
dependency2 ^2.0 和字段是必填字段并指定包的名称和版本。nameversion该字段提供包裹的简要说明。description该字段指定负责包裹的人员的姓名和电子邮件地址。authors该部分指定包正常运行所需的依赖项。在此示例中包依赖于另外两个包并且 。dependenciesdependency1dependency2 就像我们上面讨论的那样您可以运行以下命令来执行可编辑的安装 pip install -e . 2.3 安装“附加功能” 让我们谈谈当包具有需要称为“extras”的额外依赖项的可选功能时会发生什么。 如果使用该文件来管理依赖项则可以通过在函数的参数中包含附加项来指定附加项。例如setup.pyextras_requiresetup() setup(...extras_require{extra_feature: [dependency3, dependency4]}...
) 若要安装额外的依赖项请运行以下命令 pip install -e .[extra_feature] 如果您正在使用该文件则可以在文件的部分中指定附加内容。例如pyproject.toml[project.extras] [project.extras]
extra_feature [dependency3, dependency4] 您可以使用相同的命令来安装额外的依赖项如下所示 pip install -e .[extra_feature] 如前所述该标志代表“可编辑”它以“开发人员模式”安装包。如果要在发布新版本之前测试任何更改则可以使用它。-e 该标志类似于标志但它也指定应使用“dev”附加功能安装包。还将安装包文件中指定为“dev”的任何其他包或依赖项。这对于安装生产用途不需要的开发特定依赖项非常有用。-e .[dev]-esetup.py 三、替代 Python 依赖管理工具 除了 pip 之外还有一些替代工具可用于管理 Python 项目中的依赖项。其中一种工具是诗歌。 Poetry是Python项目的打包和依赖管理工具。Poetry被设计为比pip更用户友好具有版本约束解析和自动虚拟环境管理等功能。 使用诗歌的主要优点之一是它的简单性和易用性。Poetry 会自动管理项目的虚拟环境确保每个项目都有自己的隔离环境及其依赖项。这降低了不同项目之间版本冲突的风险。此外Poetry 提供了一种简单、简洁的语法用于指定文件中的依赖项和版本约束。pyproject.toml 但是使用诗歌也有一些缺点。首先它不像pip那样被广泛使用并且在更广泛的Python社区中可能没有得到很好的支持。一些开发人员可能更喜欢 pip 提供的更灵活和可定制的方法。 四、虚拟环境又名“venvs” Python 中的虚拟环境为依赖冲突问题提供了解决方案。默认情况下所有 Python 包都安装到单个全局命名空间中这可能会导致单台计算机上不同项目之间的兼容性问题并导致难以解决冲突。 虚拟环境创建隔离的Python环境以允许在单独的项目中使用不同版本的Python和库而不会相互干扰。 这意味着您可以在同一台计算机上拥有多个虚拟环境每个环境都有自己的一组软件包而不会相互干扰。 要创建新的虚拟环境可以使用该命令。例如要创建名为“myenv”的环境您需要运行python -m venv python -m venv myenv五、注意使用 python或python3 如果安装了多个版本的 Python或者正在使用使用 Python 2 的旧代码则需要使用显式引用正在使用的 Python 版本的命令。 例如如果您在计算机上新安装了 Python 3因此默认情况下您正在使用 Python 3则无需明确指定。你可以使用其中之一或者因为它们都引用了Python 3。python3python3python 但是如果您需要在 Python 2 中使用代码库但安装了 Python 2 和 3则使用 将使您能够继续工作而不会破坏任何代码。python 同样的逻辑适用于使用 pip 安装软件包时。pippip3 要激活虚拟环境您可以使用命令后跟环境脚本的路径。sourceactivate 在 Linux 和 macOS 上您将运行 source myenv/bin/activate在 Windows 上您将运行 myenv\Scripts\activate激活环境后运行的任何 Python 脚本或命令都将使用 virtualenv 中的 Python 版本和库而不是系统的全局版本。 要停用虚拟环境只需在终端中输入即可。deactivate 您会注意到当您激活虚拟环境时命令行提示符会发生变化以指示活动的 venv mynamemymachine myProject % source myenv/bin/activate
(myenv) mynamemymachine myProject % deactivate
mynamemymachine myProject % 最佳做法是为每个新项目创建一个特定的虚拟环境并将其保存在与项目相同的目录中。这使得管理变得容易并确保所有依赖项都包含在项目文件夹中。 如果您的虚拟环境位于 Git 存储库中建议将其添加到您的文件中。这有助于保持存储库清洁并确保每个开发人员的虚拟环境与 GitHub 存储库隔离。.gitignore