正是这个问题,但有诗歌,没有设置工具。
我想跑
print('Installation finished, doing other things...')
当我的包安装时。使用 Setuptools 您可以只修改setup.py
,但在 Poetry 中特别没有setup.py
.
我真正想做的是生成一个默认.mypackage_config
文件并将其放在有用的地方。如果没有任意代码,我看不到如何做到这一点,但是 Poetry不允许安装任意代码。有没有办法做到这一点?
正是这个问题,但有诗歌,没有设置工具。
我想跑
print('Installation finished, doing other things...')
当我的包安装时。使用 Setuptools 您可以只修改setup.py
,但在 Poetry 中特别没有setup.py
.
我真正想做的是生成一个默认.mypackage_config
文件并将其放在有用的地方。如果没有任意代码,我看不到如何做到这一点,但是 Poetry不允许安装任意代码。有没有办法做到这一点?
诗歌的整个想法是可以在不运行任何 Python 代码的情况下安装一个包。因此,自定义安装后脚本可能永远不会存在(来自诗歌作者,您在问题中提供的链接)。
您可以使用 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 的 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: