gpt4 book ai didi

python - 带有 Python Poetry 的安装后脚本

转载 作者:行者123 更新时间:2023-12-04 11:27:09 26 4
gpt4 key购买 nike

Post-install script with Python setuptools

正是这个问题,但是使用 Poetry 而没有 Setuptools。

我想跑

print('Installation finished, doing other things...')

当我的包安装时。使用 Setuptools,您只需修改 setup.py ,但在诗歌中没有 setup.py .

我真正想做的是生成一个默认值 .mypackage_config文件并将其放在有用的地方。我不知道如何在没有任意代码的情况下做到这一点,但是 Poetry does not allow arbitrary code用于安装。有没有办法做到这一点?

最佳答案

目前不可能(并且可能永远不会)

诗歌的整个想法是可以在不运行任何任意 Python 代码的情况下安装一个包。因此,自定义安装后脚本可能永远不会存在( from the author of poetry, the link you gave in your question )。

你可以做什么

您可以使用 setuptools,并修改 setup.py脚本,但通过消除对默认配置文件的需要,消除对安装后脚本的需要可能更容易。

大多数 Python 工具,例如 black ,倾向于假定默认配置参数,除非配置文件(例如 pyproject.toml 文件)中有覆盖它们的设置,例如:

[tool.black] # specifies this next section is the config for black
line-length = 88 # changes some configuration parameters from the defaults
target-version = ['py36', 'py37']

Jupyter 有一个命令 jupyterhub --generate-config生成默认配置文件 ( source )。

如果您的包是一个库,而不是一个命令行工具,即您通过 import 使用它- 在您的 Python 代码中使用它,我建议只将配置作为参数传递给构造函数/函数,因为这是将配置传递给库的标准方法。

例如,查看 PySerial's API .您可以通过将 args 传递给构造函数来配置库 serial.Serial ,例如:

import serial
with serial.Serial(
'/dev/ttyUSB0', # first config param, the port
19200, # second config param, the baudrate
timeout=5, # sets the timeout config param
) as ser:

关于python - 带有 Python Poetry 的安装后脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59802468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com