在诗歌运行期间导入本地包

2024-02-19

我刚刚从pipenv to poetry我在从我在一些脚本中开发的本地包导入包时遇到问题。为了使这一点更具体,我的项目看起来像:

pyproject.toml
poetry.lock
bin/
  myscript.py
mypackage/
  __init__.py
  lots_of_stuff.py

Within myscript.py, I import mypackage。但当我poetry run bin/myscript.py我得到一个ModuleNotFoundError因为PYTHONPATH不包括该项目的根目录。和pipenv,我可以通过指定来解决这个问题PYTHONPATH=/path/to/project/root in a .env文件,该文件将在运行时自动加载。导入带有诗歌的本地包的正确方法是什么?

我偶然发现了这篇文章使用环境变量 https://python-poetry.org/docs/configuration/#using-environment-variables but export POETRY_PYTHONPATH=/path/to/roject/root似乎没有帮助。


将本地包(正在开发中)添加到另一个项目可以如下完成:

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)命令行 https://github.com/python-poetry/poetry/pull/3940引入选项是为了避免上述手动步骤:

poetry add --editable /path/to/package

添加包的另一种方法可以在诗歌添加 https://python-poetry.org/docs/cli/#add page

如果上述方法不起作用,您可以查看此中详细介绍的其他步骤讨论 https://github.com/python-poetry/poetry/discussions/1135#discussioncomment-1006192

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在诗歌运行期间导入本地包 的相关文章

随机推荐