Python 诗歌和脚本入口点

问题描述 投票:0回答:2

我正在尝试使用 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

我在这里错过了什么吗?谢谢,

python python-poetry
2个回答
8
投票

Poetry 可能会将脚本安装在您的用户本地目录中。例如,在 Ubuntu 上,这是

$HOME/.local/bin
。如果该目录不在您的路径中,您的 shell 将找不到该脚本。

旁注:通常最好在

src
目录中放置一个包含您的包名称的子目录。一般来说,您的
__init__.py
目录中最好不要有
src
。另请考虑将
cli.py
重命名为
__main__.py
。这将允许您的包使用
python -m package_name
作为脚本运行。


2
投票

除了没有激活虚拟环境或通过

xyz
运行该别名 (
poetry run xyz
) 之外,您所做的一切都是正确的。可以通过
poetry shell
激活 virtualenv。之后,
xyz
应该从您的 shell 运行。

PS:@jisrael18的回答是完全正确的。通常,在

src
文件夹内会有另一个文件夹(这是你的主要 Python 模块)。

.
├── src
│   └── pyproj
│       ├── __init__.py
│       └── __main__.py
...
© www.soinside.com 2019 - 2024. All rights reserved.