Python 诗歌和脚本入口点

Ric*_*ckD 9 python python-poetry

我尝试使用 Poetry 和脚本选项来运行脚本。就像这样:

\n

pyproject.toml

\n
[tool.poetry.scripts]\nxyz = "src.cli:main"\n
Run Code Online (Sandbox Code Playgroud)\n

文件夹布局

\n
   .\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 poetry.lock\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 run-book.txt\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 cli.py\n
Run Code Online (Sandbox Code Playgroud)\n

然后我像这样执行安装:

\n
\xe2\x9d\xaf poetry install\nInstalling dependencies from lock file\n\nNo dependencies to install or update\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
\xe2\x9d\xaf xyz\nzsh: command not found: xyz\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

jis*_*l18 6

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

旁注:通常最好在src目录中放置一个带有您的包名称的子目录。通常最好不要__init__.py在您的src目录中包含 。还可以考虑重命名cli.py__main__.py. 这将允许您的包作为脚本运行python -m package_name