我刚刚从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(使用前将#替换为@)