如何使我的项目在诗歌环境中可用?
How can I make my project available in the poetry environment?
我希望能够在开发过程中 run/import 我的包,使用 poetry 作为我的依赖和环境管理工具。我根本不知道如何在诗歌中做到这一点(没有在每个解释器中操纵 sys.path)
poetry documentation 似乎表明默认情况下应该这样做:
The current project is installed in editable mode by default.
但我已经在多个项目中尝试过,并且当前项目永远无法从虚拟环境中的解释器导入。它总是以 ModuleNotFoundError
失败。我也看不到这个安装应该如何发生或在哪里发生。
文档还描述了在可编辑模式下添加路径依赖:
[tool.poetry.dependencies]
my-package = {path = "../my/path", develop = true}
但这总是失败并显示“无法打开文件”或“目录似乎不是 python 包”。该目录有 __init__.py
,我正在使用带有 src 目录的默认诗歌设置。
需要做两件事,正在开发的包在 venv 中可用。
首先,诗歌必须能够找到包文件夹。如果包含包数据的文件夹与 pyproject.toml
位于同一文件夹中,或者是名为 src
的文件夹的子文件夹,poetry 可以默认执行此操作。包含包数据的文件夹的名称必须与 pyproject.toml
的 [tool.poetry]
部分中 name
下定义的名称相同。如果 name
包含 .
或 -
这些字符必须替换为包文件夹的 _
。
如果您使用不同的架构,您必须在 pyproject.toml
中通过 packages
告诉诗歌,它可以在其中找到包,例如:
packages = [
{ include = "my_package", from = "lib" },
]
有关更多示例,请参阅 docs。
其次,运行poetry install
。这将安装所有依赖项并以可编辑模式以及虚拟环境安装项目包。
如果您开始工作,请不要忘记激活 venv。这可以通过 poetry shell
或 运行 脚本通过 poetry run python my_script.py
.
完成
我希望能够在开发过程中 run/import 我的包,使用 poetry 作为我的依赖和环境管理工具。我根本不知道如何在诗歌中做到这一点(没有在每个解释器中操纵 sys.path)
poetry documentation 似乎表明默认情况下应该这样做:
The current project is installed in editable mode by default.
但我已经在多个项目中尝试过,并且当前项目永远无法从虚拟环境中的解释器导入。它总是以 ModuleNotFoundError
失败。我也看不到这个安装应该如何发生或在哪里发生。
文档还描述了在可编辑模式下添加路径依赖:
[tool.poetry.dependencies]
my-package = {path = "../my/path", develop = true}
但这总是失败并显示“无法打开文件”或“目录似乎不是 python 包”。该目录有 __init__.py
,我正在使用带有 src 目录的默认诗歌设置。
需要做两件事,正在开发的包在 venv 中可用。
首先,诗歌必须能够找到包文件夹。如果包含包数据的文件夹与 pyproject.toml
位于同一文件夹中,或者是名为 src
的文件夹的子文件夹,poetry 可以默认执行此操作。包含包数据的文件夹的名称必须与 pyproject.toml
的 [tool.poetry]
部分中 name
下定义的名称相同。如果 name
包含 .
或 -
这些字符必须替换为包文件夹的 _
。
如果您使用不同的架构,您必须在 pyproject.toml
中通过 packages
告诉诗歌,它可以在其中找到包,例如:
packages = [
{ include = "my_package", from = "lib" },
]
有关更多示例,请参阅 docs。
其次,运行poetry install
。这将安装所有依赖项并以可编辑模式以及虚拟环境安装项目包。
如果您开始工作,请不要忘记激活 venv。这可以通过 poetry shell
或 运行 脚本通过 poetry run python my_script.py
.