Python 诗歌和剧本切入点

Python Poetry and Script Entrypoints

我正在尝试将 Poetry 和脚本选项用于 运行 脚本。像这样:

pyproject.toml

[tool.poetry.scripts]
xyz = "src.cli:main"

文件夹布局

   .
    ├── poetry.lock
    ├── pyproject.toml
    ├── run-book.txt
    └── src
        ├── __init__.py
        └── cli.py

然后我像这样执行安装:

❯ poetry install
Installing dependencies from lock file

No dependencies to install or update

如果我然后尝试 运行 找不到命令 (?)

❯ xyz
zsh: command not found: xyz

我是不是漏掉了什么!谢谢,

Poetry 可能会在您的用户本地目录中安装脚本。例如,在 Ubuntu 上,这是 $HOME/.local/bin。如果该目录不在您的路径中,您的 shell 将找不到该脚本。

旁注:在 src 目录中放置一个包含您的包名称的子目录通常是个好主意。通常最好不要在 src 目录中包含 __init__.py。还可以考虑将 cli.py 重命名为 __main__.py。这将使您的包成为 运行 作为使用 python -m package_name.

的脚本

除了未激活虚拟环境或通过 poerty run xyz 运行 别名 (xyz) 之外,您所做的一切都是正确的。可以通过 poetry shell 激活 virtualenv。之后 xyz 应该 运行 从你的 shell.

ps:@jisrael18 完全正确。通常在 src 文件夹中会有另一个文件夹(这是您的主要 python 模块)。

.
├── src
│   └── pyproj
│       ├── __init__.py
│       └── __main__.py
...