赞
踩
今天在搜集数据集的时候遇到了pyproject.toml配置文件,点开来一看发现有许多依赖包和配置信息,查找资料一看,还可以用pyproject.toml进行依赖包管理。
该文件的部分由多个部分组成。tool.poetry pyproject.toml
以项目<''https://github.com/tiangolo/fastapi/blob/master/pyproject.toml"> fastapi 的pyproject为例,介绍一下pyproject.toml的组成部分:
这告诉像pip这样的工具用flit构建你的项目。这是 PEP 517 定义的标准。对于任何使用Flit的新项目。
[build-system]
requires = ["flit"]
build-backend = "flit.buildapi"
发布包的一些信息,作者,首页等等、。
[tool.flit.metadata]
module = "fastapi"
author = "Sebastián Ramírez"
author-email = "tiangolo@gmail.com"
home-page = "https://github.com/tiangolo/fastapi"
发布到pypi上的分类信息,require字段是此包所需的 PyPI 中的其他包的列表。
[tool.flit.metadata] # ... classifiers = [ "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Libraries", "Topic :: Software Development", "Typing :: Typed", "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: AsyncIO", "Framework :: FastAPI", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Internet :: WWW/HTTP", requires = [ "starlette==0.19.1", "pydantic >=1.6.2,!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0", ] description-file = "README.md" requires-python = ">=3.6.1" ]
除了基本 url (和 ) 之外,您还可以在该部分中指定任何自定义 URL项目路径。项目的 URL,例如其 Github 存储库。
[tool.flit.metadata.urls]
Documentation = "https://fastapi.tiangolo.com/"
可选依赖项,用于增强包,但不是必需的,包含着一些测试环境的依赖等等。每个可选功能所需的包列表。这些要求的指定格式与指定的格式相同。
[tool.flit.metadata.requires-extra] test = [ "pytest >=6.2.4,<7.0.0", "pytest-cov >=2.12.0,<4.0.0", "mypy ==0.910", "flake8 >=3.8.3,<4.0.0", "black == 22.3.0", "isort >=5.0.6,<6.0.0", "requests >=2.24.0,<3.0.0", "httpx >=0.14.0,<0.19.0", "email_validator >=1.1.1,<2.0.0", "sqlalchemy >=1.3.18,<1.5.0", "peewee >=3.13.3,<4.0.0", "databases[sqlite] >=0.3.2,<0.6.0", "orjson >=3.2.1,<4.0.0", "ujson >=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0", "python-multipart >=0.0.5,<0.0.6", "flask >=1.1.2,<3.0.0", "anyio[trio] >=3.2.1,<4.0.0", # types "types-ujson ==4.2.1", "types-orjson ==3.6.2", "types-dataclasses ==0.6.5; python_version<'3.7'", ] doc = [ "mkdocs >=1.1.2,<2.0.0", "mkdocs-material >=8.1.4,<9.0.0", "mdx-include >=1.4.1,<2.0.0", "mkdocs-markdownextradata-plugin >=0.1.7,<0.3.0", # TODO: upgrade and enable typer-cli once it supports Click 8.x.x # "typer-cli >=0.0.12,<0.0.13", "typer >=0.4.1,<0.5.0", "pyyaml >=5.3.1,<7.0.0", ] dev = [ "python-jose[cryptography] >=3.3.0,<4.0.0", "passlib[bcrypt] >=1.7.2,<2.0.0", "autoflake >=1.4.0,<2.0.0", "flake8 >=3.8.3,<4.0.0", "uvicorn[standard] >=0.12.0,<0.18.0", "pre-commit >=2.17.0,<3.0.0", ] all = [ "requests >=2.24.0,<3.0.0", "jinja2 >=2.11.2,<4.0.0", "python-multipart >=0.0.5,<0.0.6", "itsdangerous >=1.1.0,<3.0.0", "pyyaml >=5.3.1,<7.0.0", "ujson >=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0", "orjson >=3.2.1,<4.0.0", "email_validator >=1.1.1,<2.0.0", "uvicorn[standard] >=0.12.0,<0.18.0", ]
安装软件包时,可以使用以下选项指定附加功能:-E|–extras
poetry install --extras "mysql pgsql"
poetry install -E mysql -E pgsql
-f <path>, --ini-file <path>
指定要构建的模块的配置文件的路径。缺省值为 。pyproject.toml
--version
显示正在使用的 Flit 版本。
--help
在命令行界面上显示帮助。
--debug
显示有关 flit 正在执行的操作的更详细日志。
Build a wheel and an sdist (tarball) from the package.
--format <format>
限制为发布或 .通常应同时发布这两种格式。wheelsdist
--setup-py
在 sdist 中生成一个文件,以便可以通过旧版本的 pip 进行安装。setup.py
Build a wheel and an sdist (tarball) from the package, and upload them to PyPI or another repository.用于上传到pypi上
--repository <repository>
要将包上载到的存储库的名称。应与 中的某个部分匹配。缺省值为 。~/.pypircpypi
--pypirc <pypirc>
要使用的 .pypirc 配置文件。缺省值为 。~/.pypirc
在系统上安装软件包。
默认情况下,软件包安装在Flit本身安装的同一Python环境中;使用 --python 或 FLIT_INSTALL_PYTHON 来覆盖它。
如果您没有修改环境的权限(例如Linux上的系统Python),Flit可以进行用户安装。使用 --user 或 --env 标志以一种或另一种方式强制这样做。
-s, --symlink
将模块符号链接到站点包中,而不是复制它,以便可以测试更改而无需重新安装模块。
--deps <dependency option>
要安装的依赖项。、 、 或 之一。 并安装附加组件 、 和 。违约。all production develop none all developtest docdev all
--extras <extra[,extra,...]>
哪个命名了要为其安装依赖项的额外功能。指定安装所有可选依赖项或以逗号分隔的附加组件列表。缺省值取决于 。all–deps
--user
执行用户本地安装。如果 flit 不在 virtualenv 或 conda env 中(如果环境的库目录是只读的并且为 true),则这是默认设置。site.ENABLE_USER_SITE
--env
安装到环境中 - 与 --user 相反。这是 virtualenv 或 conda env 中的默认值(如果环境的库目录是可写的或 false)。site.ENABLE_USER_SITE
通过提示输入有关当前目录中模块的信息来创建新的配置文件。pyproject.toml
Poetry是Python中用于依赖管理和打包的工具。和flit及其类似,详见https://python-poetry.org/docs/
https://www.jianshu.com/p/9fb0d69134d2
https://flit.pypa.io/en/latest/cmdline.html
https://python-poetry.org/docs/pyproject/
https://www.cnblogs.com/dongfangtianyu/p/14382420.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。