python之poetry模块,项目管理

一、简介

Poetry 是一个用于管理 Python 项目依赖关系和构建工具的工具。它提供了一个简单的命令行界面,可以帮助您创建、管理和发布 Python 项目,使用方法:command [options] [arguments]
官网:https://python-poetry.org/docs/

  1. 主要功能和用途
  • 创建新的 Python 项目:Poetry 提供了 new 命令,可以创建一个新的 Python 项目,并设置项目的基本配置。
  • 管理依赖项:Poetry 使用 pyproject.toml 文件来管理项目的依赖项。您可以通过运行 add 命令添加依赖项,指定版本要求,并自动解析依赖关系。Poetry 还支持锁定依赖项的版本,以确保项目在不同环境中的一致性。
  • 构建和发布项目:Poetry 提供了 build 命令,用于构建项目。您可以选择将项目打包为源码分发包或二进制分发包。此外,Poetry 还支持将项目发布到 PyPI 或私有仓库。
  • 虚拟环境管理:Poetry 可以为每个项目创建和管理独立的虚拟环境。这使得项目的依赖项与其他项目隔离开来,确保项目的环境独立性和可重现性。
  • 运行命令和脚本:Poetry 允许您在项目的虚拟环境中运行命令和脚本。这样可以确保命令和脚本在正确的环境中执行,并且可以访问项目的依赖项。
  1. poetry优点
  • 简化依赖项管理:Poetry 提供了一个统一的方式来管理项目的依赖项。您可以在 pyproject.toml 文件中指定项目的依赖项,并且可以使用 Poetry 的命令来安装、更新和删除依赖项。这简化了依赖项的管理过程,使得项目的环境配置更加简单和可靠。
  • 虚拟环境和依赖项隔离:Poetry 支持创建和管理虚拟环境,这使得每个项目都可以拥有独立的 Python 环境。这样可以避免不同项目之间的依赖项冲突,并且可以确保每个项目都使用正确的依赖项版本。
  • 自动生成和维护 pyproject.toml 文件:Poetry 可以自动为您的项目生成和维护 pyproject.toml 文件。这个文件包含了项目的元数据、依赖项和构建配置等信息。通过自动生成和维护这个文件,Poetry 简化了项目配置的过程,使得项目的管理更加方便。
  • 构建和发布支持:Poetry 提供了一些命令来构建和发布项目。您可以使用 Poetry 构建项目的分发包,并且可以轻松地发布到 PyPI 或其他包管理平台。这使得项目的构建和发布过程更加简单和一致。
  1. poetry缺点
  • 学习曲线:Poetry 的功能非常丰富,但这也意味着它有一个相对陡峭的学习曲线。对于新用户来说,可能需要一些时间来熟悉 Poetry 的命令和工作流程。然而,一旦掌握了基本的概念和操作,Poetry 可以提供强大的依赖项管理能力。
  • 社区支持:尽管 Poetry 的用户群体在不断增长,但与其他一些依赖项管理工具相比,Poetry 的社区支持可能相对较小。这意味着在遇到问题时,可能需要花费一些时间来寻找解决方案或寻求帮助。
二、poetry使用
  1. 安装poetry,windows打开Power shell运行:Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -,安装成功会显示安装路径,尽量去官网拷贝该命令:https://python-poetry.org/docs/#installing-with-the-official-installer
    在这里插入图片描述
  2. 配置环境变量
    在这里插入图片描述
  3. 打开命令行工具,运行poetry --version,显示版本号安装成功
    在这里插入图片描述
  4. poetry new demo 创建项目
    在这里插入图片描述
  5. poetry add requests 添加依赖项,pyproject.toml项目元数据和构建配置的文件:https://python-poetry.org/docs/pyproject/
    在这里插入图片描述
  6. 卸载依赖项 poetry remove requests
  7. 导出 requirements.txt 文件,poetry export -f requirements.txt --output requirements.txt
  8. 卸载poetry,windows打开Power shell运行:(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python - --uninstall
三、pyproject.toml文件解析

与pyproject.toml相对应的文件poetry.lock,poetry.lock会将第三方库的版本锁定,后面的开发人员根据puproject.toml安装的时候,第三方库的版本是固定的。poetry install安装依赖项时poetry.lock文件存在会解析并安装您在中列出的所有依赖项pyproject.toml,但 Poetry 使用中列出的确切版本poetry.lock来确保包版本对于在您的项目中工作的每个人都是一致的。使用poetry.lock进行项目的版本控制是非常重要的,poetry.lock安装依赖时会自动生成

  1. tool.poetry:配置Poetry的选项和属性
[tool.poetry]
name = "order"  # 项目的名称
version = "0.1.0"  # 项目版本
description = ""  # 项目描述
authors = ["zhansan"]  # 项目作者信息
readme = "README.md"  # 项目的 README 文件路径
homepage = ""  # 项目的主页 URL
license = ""  # 项目的许可证
maintaine = ["lisi"]  # 项目的维护者列表
repository = "https://github.com/python-poetry/poetry"  # 项目的代码仓库 URL
documentation = "https://python-poetry.org/docs/"  # 项目的文档 URL
keywords = "python-poetry"  # 项目的关键词列表
classifiers = ["Topic :: Software Development :: Build Tools",]  # 项目的分类器列表,分类器是一种标记,用于描述项目的特性、用途或所属领域
packages = [ { include = "my_package", from = "lib", format = "sdist"}]  # 最终发行版中包含的包和模块的列表
include = [{path = "for_wheel.txt", format = ["sdist", "wheel"]}]  # 要包含在项目中的其他文件或目录列表
exclude = []  # 要排除在项目之外的文件或目录列表
''''''''''''format''''''''''''
sdist:表示将文件或目录打包为源分发包(source distribution)。
wheel:表示将文件或目录打包为 Wheel 包。
bdist:表示将文件或目录打包为二进制分发包(binary distribution)。
egg:表示将文件或目录打包为 Egg 包。''''''''''''license''''''''''''
Apache-2.0:Apache 许可证 2.0 版,是一种宽松的开源许可证,允许您使用、修改和分发代码,但需要保留原始版权和许可声明。
BSD-2-Clause:BSD 2-Clause 许可证,也称为简化 BSD 许可证或 FreeBSD 许可证,是一种宽松的开源许可证,允许您使用、修改和分发代码,但需要保留原始版权和许可声明。
BSD-3-Clause:BSD 3-Clause 许可证,也称为新 BSD 许可证或修订 BSD 许可证,是一种宽松的开源许可证,允许您使用、修改和分发代码,但需要保留原始版权和许可声明。
BSD-4-Clause:BSD 4-Clause 许可证,也称为原始 BSD 许可证或古老的 BSD 许可证,是一种宽松的开源许可证,允许您使用、修改和分发代码,但需要保留原始版权和许可声明。
GPL-2.0-only:GNU General Public License (GPL) 2.0 版,是一种强 copyleft 许可证,要求任何基于 GPL 许可的代码的派生作品也必须使用 GPL 许可证。
GPL-2.0-or-later:GNU General Public License (GPL) 2.0 版或任何后续版本,具有与 GPL-2.0-only 相同的要求。
GPL-3.0-only:GNU General Public License (GPL) 3.0 版,是一种强 copyleft 许可证,要求任何基于 GPL 许可的代码的派生作品也必须使用 GPL 许可证。
GPL-3.0-or-later:GNU General Public License (GPL) 3.0 版或任何后续版本,具有与 GPL-3.0-only 相同的要求。
LGPL-2.1-only:GNU Lesser General Public License (LGPL) 2.1 版,是一种较宽松的开源许可证,允许您将 LGPL 许可的代码与其他非 LGPL 许可的代码进行链接,而不需要将整个作品都采用 LGPL 许可。
LGPL-2.1-or-later:GNU Lesser General Public License (LGPL) 2.1 版或任何后续版本,具有与 LGPL-2.1-only 相同的要求。
LGPL-3.0-only:GNU Lesser General Public License (LGPL) 3.0 版,是一种较宽松的开源许可证,允许您将 LGPL 许可的代码与其他非 LGPL 许可的代码进行链接,而不需要将整个作品都采用 LGPL 许可。
LGPL-3.0-or-later:GNU Lesser General Public License (LGPL) 3.0 版或任何后续版本,具有与 LGPL-3.0-only 相同的要求。
MIT:MIT 许可证,是一种宽松的开源许可证,允许您使用、修改和分发代码,但需要保留原始版权和许可声明。
  1. tool.poetry.dependencies:指定项目的依赖项,poetry add 添加的依赖项
[tool.poetry.dependencies]
python = "^3.11"
requests = { version = "^2.13.0", source = "private" }
requests = { git = "https://github.com/kennethreitz/requests.git", branch = "next" }
''''''''''''使用 Git 作为依赖项的源时''''''''''''
git:指定 Git 仓库的 URL
branch:指定要使用的 Git 分支
rev:指定要使用的 Git 提交哈希
tag:指定要使用的 Git 标签
subdirectory:如果 Git 仓库中有多个子目录,并且只需要其中一个子目录作为依赖项,可以使用 subdirectory 选项来指定子目录的路径
optional:如果希望将某个依赖项标记为可选的,即如果依赖项无法安装也不会导致构建失败
develop:如果希望将 Git 仓库作为开发模式下的依赖项,即在开发期间对其进行修改并实时生效
submodules:如果 Git 仓库包含子模块,可以使用 submodules 选项来指定是否需要包括子模块
  1. tool.poetry.source:用于指定依赖包源,可以是私有的,也可以是自定义的,poetry source add 添加的依赖项
[[tool.poetry.source]]
name = "private"
url = "http://example.com/private"
default = false # 是否默认
secondary = false # 是否是辅助源[[tool.poetry.source]]
name = "custom_source"
url = "http://example.com/custom_source"
  1. tool.poetry.group:分组依赖项
[tool.poetry.group.dev.dependencies]  # 添加依赖到dev组:poetry add pytest --group dev
pytest = "*"
astapi = {version="^0.92.0", extras=["all"]} # extras对应tool.poetry.extras[tool.poetry.group.docs]
optional = true  # 可选组[tool.poetry.group.docs.dependencies]  # 添加依赖到可选组:poetry install --with docs
mkdocs = "*"
  1. tool.poetry.scripts:配置用于定义项目的命令行脚本,poetry run script1运行脚本
[tool.poetry.scripts]
script1 = 'module1:function1'
script2 = { reference = "mdule1:function2", extras = ["test"], type = "console" } # extras对应tool.poetry.extras
''''''''''''配置项''''''''''''1、reference: 这是一个必需的属性,用于指定要执行的函数或命令。它可以采用以下两种形式之一:"module:function": 表示要执行指定模块中的特定函数。例如,"mymodule:myfunction" 表示要执行 mymodule 模块中的 myfunction 函数。
"command": 表示要执行的命令行命令。例如,"python -m mymodule" 表示要执行 python -m mymodule 命令。2、extras: 可选属性,用于指定额外的依赖项组。它是一个字符串数组,包含要使用的依赖项组的名称。这通常用于在特定场景或环境中运行脚本时,提供额外的依赖项。3、type: 这是一个可选的属性,用于指定命令行脚本的类型。它可以是以下值之一:"console": 表示该脚本是一个控制台命令行脚本,可以在终端中直接执行。
"gui": 表示该脚本是一个图形用户界面 (GUI) 脚本,需要在图形环境中执行。
  1. tool.poetry.extras:配置用于定义额外的依赖项组,poetry install --extras “mysql”
[tool.poetry.dependencies]
psycopg2 = {version = "^2.9", optional = true}
mysqlclient = {version = "^1.3", optional = true}[tool.poetry.extras]
mysql = ["mysqlclient"]  # 当需要在项目中使用 MySQL 数据库时,可以通过启用 mysql 依赖项组来安装 mysqlclient。databases = ["mysqlclient", "psycopg2"]  # 您需要在项目中使用多个数据库时,可以通过启用 databases 依赖项组来同时安装这两个依赖项
  1. tool.poetry.plugins:配置允许将自定义的插件集成到 Poetry 或其他工具中,可使用poetry self 管理插件,如:poetry self show plugins 查看插件信息,https://python-poetry.org/docs/plugins/
'''
<plugin-type>:插件类型,core(核心插件)、tool(工具插件)、command(命令插件) 或 export(导出插件),也可以自己定义
<plugin-name>:插件名称,用于标识插件。
<module-path>:自定义插件的 Python 模块的导入路径。
<entry-point>:插件的入口点,可以是一个函数或类的名称。
'''
[tool.poetry.plugins.<plugin-type>]
<plugin-name> = "<module-path>:<entry-point>"
  1. tool.poetry.urls:配置项目相关的 URL,如果在PyPI上发布包,它们将出现在Project Links部分中
[tool.poetry.urls]
"Documentation" = "https://example.com/docs"
"Source Code" = "https://example.com/source"
  1. build-system:定义构建系统相关的配置
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api" # poetry build
四、poetry config 用于配置 Poetry 的全局或项目级设置
  1. poetry config --list:查看全局 Poetry 配置
cache-dir:指定 Poetry 缓存的目录路径,用于存储下载的包和其他缓存文件。
experimental.system-git-client:指定是否启用实验性的系统 Git 客户端。如果设置为 true,Poetry 将使用系统中已安装的 Git 客户端进行操作。
installer.max-workers:指定安装器的最大并发工作线程数。如果设置为 null,Poetry 将根据系统的可用 CPU 核心数自动确定并发数。
installer.modern-installation:指定是否启用现代安装模式。如果设置为 true,Poetry 将使用现代安装模式进行包安装。
installer.no-binary:指定是否禁用二进制包的安装。如果设置为 null,则不禁用二进制包。
installer.parallel:指定是否启用并行安装。如果设置为 true,Poetry 将尝试并行安装包以加快安装速度。
repositories.pypi.url:指定 PyPI 仓库的 URL 地址,用于下载包和依赖项。
virtualenvs.create:指定是否在项目中创建虚拟环境。如果设置为 true,Poetry 将在项目目录中创建虚拟环境。
virtualenvs.in-project:指定虚拟环境是否在项目目录中。如果设置为 null,Poetry 将根据项目的配置自动确定虚拟环境的位置。
virtualenvs.options.always-copy:指定是否始终复制虚拟环境。如果设置为 false,Poetry 将尝试使用硬链接或符号链接来创建虚拟环境。
virtualenvs.options.no-pip:指定是否禁用虚拟环境中的 pip 工具。
virtualenvs.options.no-setuptools:指定是否禁用虚拟环境中的 setuptools 库。
virtualenvs.options.system-site-packages:指定是否在虚拟环境中包含系统安装的包。
virtualenvs.path:指定虚拟环境的路径。这里使用了 {cache-dir} 变量,将其替换为缓存目录的路径。
virtualenvs.prefer-active-python:指定是否优先使用活动的 Python 解释器。
virtualenvs.prompt:指定虚拟环境的命令行提示符格式。其中 {project_name} 会被替换为项目名称,{python_version} 会被替换为 Python 版本。
warnings.export:指定是否导出警告信息。如果设置为 true,Poetry 将导出警告信息。
设置镜像源:poetry config repositories.pypi https://pypi.org/simple
添加conda镜像源:poetry config repositories.conda https://repo.anaconda.com/pkgs/main
添加清华大学镜像源:poetry config repositories.thu https://pypi.tuna.tsinghua.edu.cn/simple''''''''''repositories.pypi.url常用镜像源''''''''''
官网:https://pypi.org/simple
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple
豆瓣 :http://pypi.douban.com/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
conda:https://repo.anaconda.com/pkgs/main
  1. poetry config :查看全局 Poetry 某个配置
  2. poetry config :设置全局 Poetry 配置
  3. poetry config --unset :删除全局 Poetry 配置
  4. poetry config --local --list:查看项目 Poetry 配置
  5. poetry config --local :查看项目 Poetry 某个配置
  6. poetry config --local :设置项目 Poetry 配置
五、poetry new 创建项目
  1. –name Name:设置生成的包名,如:poetry new demo --name newDemo
  2. –src:在项目根目录下创建一个名为 “src” 的目录,用于存放项目的源代码,如:poetry new demo --src
  3. –readme README:定要使用的 README 文件类型,md(默认)或rest之一,如:poetry new demo --readme rst
六、poetry install 安装依赖项
  1. –without WITHOUT:用于指定要忽略的依赖组,可以提供多个值以指定要忽略的多个依赖组,如:poetry install --without dev docs
  2. –with WITH:用于指定要包括的可选依赖组。可以提供多个值以指定要包括的多个依赖组,如:poetry install --with dev docs
  3. –only ONLY:用于指定要包括的唯一依赖组。可以提供多个值以指定要包括的多个依赖组,如:poetry install --only dev docs
  4. –sync:用于将环境(pyproject.toml)与锁定的包(poetry.lock)的依赖组进行同步,如:poetry install --sync
  5. –no-root:用于仅安装项目所依赖的包,而不会将项目本身作为一个包进行安装(tool.poetry.dependencies、build-system的requires和build-backend),希望将项目作为一个库进行开发,可使用 --no-root,如:poetry install --no-root
  6. –no-directory:指示 Poetry 不安装任何目录路径依赖项,这对于安装没有源代码的依赖项(例如用于 Docker 层缓存)很有用。
  7. –dry-run:用于在不实际执行操作的情况下模拟运行 Poetry 命令,以查看将要执行的操作,如:poetry install --dry-run
  8. -E、–extras EXTRAS:用于安装额外的依赖项集,可以提供多个值以指定要安装的多个额外依赖项集,如:poetry install -E extra1 extra2
  9. –all-extras:用于安装所有额外的依赖项集,如:poetry install --all-extras
  10. –only-root:用于排除所有依赖项,只安装根包(tool.poetry.dependencies、build-system的requires和build-backend,如:poetry install --only-root
  11. –compile:用于将 Python 源代码编译为字节码。如果启用了现代安装(modern-installation),此选项将不起作用,默认modern-installation,如:poetry install --compile
七、poetry add 添加依赖项
  1. -G、–group GROUP:将依赖项添加到指定的组中,默认组为 “tool.poetry.dependencies”,指定组添加,如:poetry add --group=dev requests
  2. -e、–editable:用于将依赖项以可编辑模式添加到项目中,可编辑模式允许你在项目中修改依赖项的源代码,而不是将其作为普通的安装包进行安装,如:poetry add --editable …/my-library、poetry add --editable git+https://github.com/user/my-library.git
  3. -E、–extras EXTRAS:用于安装指定的附加依赖项,如:poetry add my-package --extras “feature1,feature2”
  4. –optional:用于安装可选的依赖项,如:poetry add requests --optional
  5. –python PYTHON:指定依赖项要求的 Python 版本,如:poetry add requests --python 3.9
  6. –platform PLATFORM:指定依赖项要求的平台,如:poetry add requests --platform linux
  7. –source SOURCE:指定要使用的安装源的名称,可以指定多个,如:poetry add requests --source pypi --source https://example.com/repository
  8. –allow-prereleases:允许安装预发布版本的依赖项,如:poetry add requests --allow-prereleases
  9. –dry-run:模拟添加依赖项的操作,如:poetry add requests --dry-run
  10. –lock:用于将依赖项添加到项目并更新锁文件,如:poetry add requests --lock
poetry add requests@2.26.0 #安装指定版本
poetry add requests@">=2.26.0,<3.0.0" #安装指定版本范围
poetry add git+https://github.com/python-poetry/poetry.git #提供依赖项的 Git URL,Poetry 将克隆该 Git 仓库并安装依赖项
poetry add git+https://github.com/python-poetry/poetry.git #develop #在 Git URL 后面添加修订版本的标识符,Poetry 将根据指定的修订版本安装依赖项
poetry add git+ssh://github.com/python-poetry/poetry.git #提供依赖项的 Git SSH URL,Poetry 将克隆该 Git 仓库并安装依赖项
poetry add git+ssh://github.com/python-poetry/poetry.git#develop #在 Git SSH URL 后面添加修订版本的标识符,Poetry 将根据指定的修订版本安装依赖项
poetry add ../my-package/my-package.whl #提供依赖项的本地文件路径,Poetry 将安装指定路径下的依赖项
poetry add ../my-package/ #提供依赖项的本地目录路径,Poetry 将安装指定目录中的依赖
poetry add https://example.com/packages/my-package-0.1.0.tar.gz #提供依赖项的远程 URL,Poetry 将下载并安装指定的依赖项
八、poetry remove 删除依赖项
  1. -G、–group=GROUP:从指定的依赖组中移除依赖项, 默认组为 “tool.poetry.dependencies”",指定组删除,如:poetry remove --group=dev pytest
  2. –dry-run:模拟删除依赖项的操作,如:poetry remove requests --dry-run
  3. –lock:用于将依赖项删除并更新锁文件,如:poetry remove requests --lock
九、poetry update 更新依赖项
  1. –without WITHOUT:用于指定要忽略的依赖组,可以提供多个值以指定要忽略的多个依赖组,如:poetry update --without dev docs
  2. –with WITH:用于指定要包括的可选依赖组。可以提供多个值以指定要包括的多个依赖组,如:poetry update --with dev docs
  3. –only ONLY:用于指定要包括的唯一依赖组。可以提供多个值以指定要包括的多个依赖组,如:poetry update --only dev docs
  4. –dry-run:用于在不实际执行操作的情况下模拟运行 Poetry 命令,以查看将要执行的操作,如:poetry update --dry-run
  5. –lock:只更新锁文件,如:poetry update --lock
十、poetry env 环境管理
  1. poetry env use:创建并指定 Poetry 环境,如:poetry env use
  2. poetry env info:显示当前活动 Poetry 环境的信息,如:poetry env info
  3. poetry env list:列出所有可用的 Poetry 环境,如:poetry env list
  4. poetry env remove:移除指定的 Poetry 环境,如:poetry env remove
十一、poetry source 源管理,tool.poetry.source
  1. poetry source add:添加源到 Poetry 配置,如:poetry source add
  2. poetry source show:显示当前配置的源。如:poetry source show
  3. poetry source remove:移除指定的源,如:poetry source remove
十二、poetry self 与Poetry相关的命令
  1. poetry self show:显示 Poetry 的详细信息,如:poetry self show
  2. poetry self update:更新 Poetry 到最新版本,如:poetry self update
  3. poetry self install:安装指定版本的 Poetry,如:poetry self install
  4. poetry self show plugins:显示已安装的 Poetry 插件,如:poetry self show plugins
十三、poetry cache 缓存
  1. poetry cache list:列出当前 Poetry 缓存中的包和版本,如:poetry cache list
  2. poetry cache clear:清除 Poetry 缓存,如:poetry cache clear --all
十四、poetry publish,将包发布到远程仓库(PyPI)
  1. -r、–repository REPOSITORY:指定要发布包的仓库,如:poetry publish -r https://myrepo.com
  2. -u、–username USERNAME:指定访问仓库的用户名,如:poetry publish -u myusername
  3. -p、–password PASSWORD:指定访问仓库的密码,如:poetry publish -p mypassword
  4. –cert CERT:指定访问仓库的证书机构,如:poetry publish --cert /path/to/cert.pem
  5. –client-cert CLIENT-CERT:指定访问仓库的客户端证书,如:poetry publish --client-cert /path/to/client_cert.pem
  6. –build:在发布之前构建包,如:poetry publish --build
  7. –dry-run:模拟发布过程,而不实际发布包,如:poetry publish --dry-run
  8. –skip-existing:忽略已经存在于仓库中的文件的错误,使用该选项可以跳过已经存在于仓库中的文件的发布,如:poetry publish --skip-existing
十五、poetry export,将锁定文件以其他格式导出
  1. -f, --format FORMAT:指定导出的格式,目前支持的格式有constraints.txt和requirements.txt,默认为requirements.txt,如:poetry export --format requirements.txt --output requirements.txt
  2. -o, --output OUTPUT:指定导出文件的名称。如果不指定,将使用默认的文件名,如:poetry export --format requirements.txt --output requirements.txt
  3. –without-hashes:在导出文件中排除哈希值,如:poetry export --format requirements.txt --output requirements.txt --without-hashes
  4. –without-urls:在导出文件中排除源代码仓库的URL,如:poetry export --format requirements.txt --output requirements.txt --without-urls
  5. –without WITHOUT:忽略指定的依赖组,poetry export --format requirements.txt --output requirements.txt --without dev --without docs
  6. –with WITH:包括指定的可选依赖组,如:poetry export --format requirements.txt --output requirements.txt --with dev --extras extra1 --extras extra2
  7. –only ONLY:只包括指定的依赖组,poetry export --format requirements.txt --output requirements.txt --only main --only tests
  8. -E, --extras EXTRAS:包括指定的额外依赖集,如:poetry export --format requirements.txt --output requirements.txt --extras extra1 --extras extra2
  9. –all-extras:包括所有额外依赖集,如:poetry export --format requirements.txt --output requirements.txt --all-extras
  10. –with-credentials:包括额外索引的凭据,如:poetry export --format requirements.txt --output requirements.txt --with-credentials
十六、poetry show 查看项目信息
  1. –without WITHOUT:忽略指定的依赖组,如:poetry show --without=dev --without=docs
  2. –with WITH:只包括指定的可选依赖组,如:poetry show --with=dev --with=docs
  3. –only ONLY:只包括指定的依赖组,如:poetry show --only=dev --only=docs
  4. -t、–tree:以树状结构列出依赖项,如:poetry show -t
  5. –why:在显示完整列表或单个包的树状结构时,同时显示为什么包被包含在其中,如:poetry show --why
  6. -l、–latest:显示最新的版本,如:poetry show -l
  7. -o、–outdated:显示最新的版本,如:poetry show -o
  8. -a、–all:显示所有包,即使它们与当前系统不兼容,如:poetry show -a
  9. -T、–top-level:仅显示顶级依赖项,如:poetry show -T
十七、其他命令
  1. poetry list:列出可用的命令。
  2. poetry about:显示有关 Poetry 的信息。
  3. poetry help:显示命令的帮助信息。
  4. poetry shell:在虚拟环境内启动一个shell。
  5. poetry lock:锁定项目的依赖项。
  6. poetry init:在当前目录创建一个基本的 pyproject.toml 文件。
  7. poetry run:运行脚本,tool.poetry.scripts,如:poetry run script1、poetry run python script.py
  8. poetry build:构建分发包,可指定格式:wheel(.whl文件)、sdist(.tar.gz文件)和egg(.egg文件),默认sdist,如:poetry build、poetry build -f wheel
  9. poetry check:验证 pyproject.toml 文件的内容以及与 poetry.lock 文件的一致性
  10. poetry check --lock::验证 poetry.lock 文件的内容以及与 pyproject.toml 文件的一致性
  11. poetry search <package_name>:在远程仓库上搜索包,如:poetry search requests
十八、通用命令配置项
  1. -h、–help:显示给定命令的帮助信息。如果没有给定命令,则显示 list 命令的帮助信息。
  2. -q、–quiet:不输出任何消息。
  3. -V、–version:显示 Poetry 应用程序的版本信息。
  4. –ansi:强制启用 ANSI 输出。
  5. –no-ansi:禁用 ANSI 输出。
  6. -n、–no-interaction:不要提出任何交互式问题。
  7. –no-plugins:禁用插件。
  8. –no-cache:禁用 Poetry 的源缓存。
  9. -C、–directory=DIRECTORY:指定 Poetry 命令的工作目录(默认为当前工作目录)。
  10. -v|vv|vvv、–verbose:增加消息的详细程度:1 为正常输出,2 为更详细的输出,3 为调试输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解SpringCloud微服务技术栈:深入ElasticSearch(1)——数据聚合

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;ElasticSearch实战&#xff08;旅游类项目&#xff09; &#x1f4da;订阅专栏&#x…

软件设计不是CRUD(11):低耦合模块设计理论——业务抽象:规划模块分层

上一篇文章《软件设计不是CRUD(10):低耦合模块设计理论——业务抽象:从需求中提取业务维度》本专题详细讲解了业务抽象的一个重要步骤:提取业务维度。本篇文章内容主要讲解在提取业务维度后,如何对应用程序中初步划分的各个功能模块进行分层规划。 1、为什么要进行模块分…

【lesson2】定长内存池的实现

文章目录 介绍定长内存池的设计定长内存池的实现需要成员变量需要的成员函数定长内存池结构定长内存池Delete&#xff08;释放空间&#xff09;的实现定长内存池New&#xff08;申请空间&#xff09;的实现 定长内存池的实现完整版 介绍 作为程序员(C/C)我们知道申请内存使用的…

Zookeeper实现分布式队列

目录 Zookeeper分布式队列 普通方式实现 设计思路 具体实现 使用Curator实现 具体实现 注意事项 Zookeeper分布式队列 常见的消息队列有:RabbitMQ&#xff0c;RocketMQ&#xff0c;Kafka等。Zookeeper作为一个分布式的小文件管理系统&#xff0c;同样能实现简单的队列功…

【python】图形化开发pyqt6基本写法模板与基础控件属性方法整理

pyqt6的简介 首先呢Python有许多可以编写图形化界面的库&#xff0c;我们通常跟着教程的话最初会接触的tkinter&#xff0c;但是学习中会发现编写的图形化跟我们平常接触的软件有很大区别&#xff08;简单来说就是丑&#xff09;。 pyqt则是第三方库&#xff0c;在Python中算…

ETL怎么实现文件处理

在现代企业及各类组织的日常运作中&#xff0c;数据作为一种关键的信息资源&#xff0c;其管理和分析能力直接影响到决策效率与准确性。文件作为数据的主要载体&#xff0c;承载着从运营报告、客户记录、交易明细等各种类型的数据信息。这些海量且多样的文件数据在未经处理的情…

flask_django基于python的城市轨道交通公交线路查询系统vue

同时&#xff0c;随着信息社会的快速发展&#xff0c;城市轨道交通线路查询系统面临着越来越多的信息&#xff0c;因此很难获得他们对高效信息的需求&#xff0c;如何使用方便快捷的方式使查询者在广阔的海洋信息中查询&#xff0c;存储&#xff0c;管理和共享信息方面有效&…

C语言菜鸟入门·运算符(算数运算符,关系运算符,逻辑运算符,位运算符,赋值运算符,三目运算符)详细介绍

目录 ​编辑 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 6. 杂项运算符 ↦ sizeof & 三元 6.1 sizeof&#xff08;&#xff09; 6.2 &取地址运算符 6.3 * 6.4 三目运算符 7. 运算符优先级 运算符是一种告诉编译器执行…

ElementUI组件:Link 文字链接

Link 文字链接 点击下载learnelementuispringboot项目源码 效果图 el-link.vue页面效果图 项目里el-link.vue文件代码 <script> export default {name: el_link }</script> <!--https://element.eleme.cn/#/zh-CN/component/link --> <template>&l…

嵌入式学习第十四天

1.结构体&#xff08;2&#xff09;: &#xff08;1&#xff09;结构体类型定义 &#xff08;2&#xff09;结构体变量的定义 &#xff08;3&#xff09;结构体元素的访问 &#xff08;4&#xff09;结构体的存储: 内存对齐: char 按照1字节对齐 …

C# OpenCvSharp DNN Gaze Estimation 视线估计

目录 介绍 效果 模型信息 项目 代码 frmMain.cs GazeEstimation.cs 下载 C# OpenCvSharp DNN Gaze Estimation 介绍 训练源码地址&#xff1a;https://github.com/deepinsight/insightface/tree/master/reconstruction/gaze 效果 模型信息 Inputs ----------------…

医院安全(不良)事件报告系统源码,不良事件处理的全过程管理,实现11大类不良事件类型的报告上报、流转审批、跟踪改进及统计分析功能。

医院安全&#xff08;不良&#xff09;事件报告系统源码&#xff0c;不良事件上报系统源码&#xff0c;PHP源码 医院安全&#xff08;不良&#xff09;事件报告系统提供11大类不良事件的上报、事件审核处理、时间按分析、事件跟踪与持续改进&#xff0c;事件提醒、权限控制、外…

聊聊DoIP吧

DoIP是啥? DoIP代表"Diagnostic over Internet Protocol",即互联网诊断协议。它是一种用于在车辆诊断中进行通信的网络协议。DoIP的目标是在现代汽车中实现高效的诊断和通信。通过使用互联网协议(IP)作为通信基础,DoIP使得诊断信息能够通过网络进行传输,从而提…

React通用后台模板

一. 项目初始化 1. 创建项目 环境 npm init vite 打开package.json,参考以下各模块版本: "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^7.2.8", …

Security ❀ TCP异常报文详解

文章目录 1. TCP Out-Of-Order2. TCP Previous Segment Lost3. TCP Retransmission4. TCP Dup Ack XXX#X5. TCP Windows Update6. TCP Previous segment not captured7. 异常案例分析 TCP协议中seq和ack seq的联系&#xff1a; id4的http请求报文由客户端发向服务器&#xff0…

sqli-labs-master靶场训练笔记(1-22|新手村)

2024.1.21 level-1 &#xff08;单引号装饰&#xff09; 先根据提示建立一个get请求 在尝试使用单个单引号测试&#xff0c;成功发现语句未闭合报错 然后反手一个 order by 得到数据库共3列&#xff0c;-- 后面加字母防止浏览器吃掉 -- 操作&#xff08;有些会&#xff09…

maven helper 解决jar包冲突方法

一 概要说明 1.1 说明 首先&#xff0c;解决idea中jar包冲突&#xff0c;使用maven的插件&#xff1a;maven helper插件&#xff0c;它能够给我们罗列出来同一个jar包的不同版本&#xff0c;以及他们的来源&#xff0c;但是对不同jar包中同名的类没有办法。 1.2 依赖顺序 …

Spring | Spring的“数据库开发“ (Srping JDBC)

目录&#xff1a; Spring JDBC1.Spring JDBC的核心类 ( JdbcTemplate类 )2.Srping JDBC 的配置3.JdbcTemplate类的“常用方法”execute( )&#xff1a;直接执行“sql语句”&#xff0c;没有返回值update( ) &#xff1a;“增删改”&#xff0c;返回 “影响的行数”query( ) : “…

双链表的基本知识以及增删查改的实现

满怀热忱&#xff0c;前往梦的彼岸 前言 之前我们对单链表进行了非常细致的剖析&#xff0c;现在我们所面临的则是与之相对应的双链表&#xff0c;我会先告诉诸位它的基本知识&#xff0c;再接着把它的增删查改讲一下&#xff0c;ok&#xff0c;正文开始。 一.链表的种类 我…

其他发现:开源数据可视化分析工具DataEase介绍文档

一、 简介 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务的改进与优化。DataEase 支持丰富的数据源连接&#xff0c;能够通过拖拉拽方式快速制作图表&#xff0c;并可以方便地与他人分享。 二、 优势 1、 开…