Ily*_*lya 17 python version setuptools pyproject.toml
我正在尝试将我的包从 迁移setup.py到pyproject.toml,但我不确定如何以与以前相同的方式进行动态版本控制。目前,当构建用于开发时,我可以使用环境变量传递开发版本。
该文件setup.py看起来类似于:
import os
from setuptools import setup
import my_package
if __name__ == "__main__":
dev_version = os.environ.get("DEV_VERSION")
version = dev_version if dev_version else f"{my_package.__version__}"
setup(
name="my_package",
version=version,
...
)
Run Code Online (Sandbox Code Playgroud)
使用文件时有没有办法做类似的事情pyproject.toml?
如果您使用 Git,另一种可能值得考虑用于您的用例的替代方案是使用setuptools_scm. 它使用您的 git 标签来执行动态版本控制。你的 pyproject.toml 看起来像这样:
[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
"version_scheme" = "post-release"
"local_scheme" = "no-local-version"
"write_to" = "mypackage/version.py"
[tool.setuptools.package-dir]
mypackage = "mypackage"
[project]
name = "mypackage"
...
dynamic = ["version"]
Run Code Online (Sandbox Code Playgroud)