如何解决在诗歌运行期间导入本地包
我刚刚从 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
,我可以通过在 PYTHONPATH=/path/to/project/root
文件中指定 .env
来解决这个问题,该文件将在运行时自动加载。 用诗歌导入本地包的正确方法是什么?
我在 using environment variables 上看到了这篇文章,但 export POETRY_PYTHONPATH=/path/to/roject/root
似乎没有帮助。
解决方法
经过相当多的谷歌搜索后,我偶然发现了 pyproject.toml 文件的 the packages attribute within the tool.poetry section。要在分发中包含本地包,您可以指定
# pyproject.toml
[tool.poetry]
# ...
packages = [
{ include = "mypackage" },]
现在这些软件包以可编辑模式安装:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。