在诗歌期间导入本地包 运行
import local package during poetry run
我刚刚从 pipenv
过渡到 poetry
,但我无法从我在一些脚本中开发的本地包导入包。为了使这个更具体,我的项目看起来像:
pyproject.toml
poetry.lock
bin/
myscript.py
mypackage/
__init__.py
lots_of_stuff.py
在myscript.py
内,我import mypackage
。但是当我 poetry run bin/myscript.py
我得到一个 ModuleNotFoundError
因为 PYTHONPATH
不包括这个项目的根。使用 pipenv
,我可以通过在 .env
文件中指定 PYTHONPATH=/path/to/project/root
来解决这个问题,该文件将在运行时自动加载。 用诗歌导入本地包的正确方法是什么?
我 运行 在 using environment variables 上浏览了这篇文章,但 export POETRY_PYTHONPATH=/path/to/roject/root
似乎没有帮助。
经过大量谷歌搜索后,我偶然发现了 the packages attribute within the tool.poetry section 的 pyproject.toml 文件。要在分发中包含本地包,您可以指定
# pyproject.toml
[tool.poetry]
# ...
packages = [
{ include = "mypackage" },
]
现在这些包以可编辑模式安装:)
将本地包(开发中)添加到另一个项目可以这样完成:
poetry add ./my-package/
poetry add ../my-package/dist/my-package-0.1.0.tar.gz
poetry add ../my-package/dist/my_package-0.1.0.whl
如果您希望以可编辑模式安装依赖项,您可以在pyproject.toml 文件中指定它。这意味着本地目录的更改将直接反映在环境中。
[tool.poetry.dependencies]
my-package = {path = "../my/path", develop = true}
在当前预览版 (1.2.0a) 中引入了一个 command line 选项,以避免上述手动步骤:
poetry add --editable /path/to/package
另一种添加包的方法可以在poetry add页面
上找到
如果上述方法不起作用,您可以查看此 discussion
中详述的其他步骤
我刚刚从 pipenv
过渡到 poetry
,但我无法从我在一些脚本中开发的本地包导入包。为了使这个更具体,我的项目看起来像:
pyproject.toml
poetry.lock
bin/
myscript.py
mypackage/
__init__.py
lots_of_stuff.py
在myscript.py
内,我import mypackage
。但是当我 poetry run bin/myscript.py
我得到一个 ModuleNotFoundError
因为 PYTHONPATH
不包括这个项目的根。使用 pipenv
,我可以通过在 .env
文件中指定 PYTHONPATH=/path/to/project/root
来解决这个问题,该文件将在运行时自动加载。 用诗歌导入本地包的正确方法是什么?
我 运行 在 using environment variables 上浏览了这篇文章,但 export POETRY_PYTHONPATH=/path/to/roject/root
似乎没有帮助。
经过大量谷歌搜索后,我偶然发现了 the packages attribute within the tool.poetry section 的 pyproject.toml 文件。要在分发中包含本地包,您可以指定
# pyproject.toml
[tool.poetry]
# ...
packages = [
{ include = "mypackage" },
]
现在这些包以可编辑模式安装:)
将本地包(开发中)添加到另一个项目可以这样完成:
poetry add ./my-package/
poetry add ../my-package/dist/my-package-0.1.0.tar.gz
poetry add ../my-package/dist/my_package-0.1.0.whl
如果您希望以可编辑模式安装依赖项,您可以在pyproject.toml 文件中指定它。这意味着本地目录的更改将直接反映在环境中。
[tool.poetry.dependencies]
my-package = {path = "../my/path", develop = true}
在当前预览版 (1.2.0a) 中引入了一个 command line 选项,以避免上述手动步骤:
poetry add --editable /path/to/package
另一种添加包的方法可以在poetry add页面
上找到如果上述方法不起作用,您可以查看此 discussion
中详述的其他步骤