如何在Poetry管理的Python项目中执行自定义命令?
在Poetry中配置自定义命令替代
npm run Poetry支持通过配置pyproject.toml里的scripts字段实现类似npm run的自定义命令功能,以下是两种常用实现方式:
直接映射Shell命令
如果只是快速绑定Docker相关命令,可直接在pyproject.toml中添加[tool.poetry.scripts]区块,用sh -c(Linux/macOS)或cmd /c(Windows)包裹Shell命令:
[tool.poetry.scripts] # 自定义构建Docker镜像的命令 docker-build = "sh -c 'docker build -t my-project-image .'" # 自定义运行Docker容器的命令 docker-run = "sh -c 'docker run -d -p 8000:8000 my-project-image'"
配置完成后,执行以下命令即可调用自定义指令:
- 构建镜像:
poetry run docker-build - 运行容器:
poetry run docker-run
Python函数封装复杂逻辑
如果需要添加错误处理、参数校验等复杂逻辑,可通过Python脚本封装命令:
- 在项目根目录创建
scripts.py文件,编写执行逻辑:
import subprocess def build_docker(): try: subprocess.run(["docker", "build", "-t", "my-project-image", "."], check=True) print("镜像构建成功") except subprocess.CalledProcessError: print("镜像构建失败") def run_docker(): try: subprocess.run(["docker", "run", "-d", "-p", "8000:8000", "my-project-image"], check=True) print("容器启动成功") except subprocess.CalledProcessError: print("容器启动失败")
- 在
pyproject.toml中关联这些函数:
[tool.poetry.scripts] docker-build = "scripts:build_docker" docker-run = "scripts:run_docker"
同样通过poetry run docker-build和poetry run docker-run执行即可。
内容的提问来源于stack exchange,提问作者Ritik Saxena
相关产品推荐
相关产品推荐

