修改Poetry的虚拟环境PYTHONPATH

blu*_*ers 10 python python-poetry

我正在使用 Poetry 来管理依赖项 - 不是作为打包工具。\n给出以下布局

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 poetry.lock\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_module.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 scripts\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.py\n
Run Code Online (Sandbox Code Playgroud)\n

在里面my_script.py我正在使用from src.my_module import MyClass,但是当我打电话时poetry run python scripts/my_script.py我得到:

\n
\n

ModuleNotFoundError:没有名为“src”的模块

\n
\n

我想将根目录添加到PYTHONPATH这个特定环境的目录中,但我想避免每次都手动导出它。

\n

底线我正在寻找诗歌与vitualenvwrappers add2virtualenv的等效项

\n

这在诗歌下可能吗?

\n

fin*_*mer 3

您可以my_module.py直接将其放入该src文件夹中,但不建议这样做。首先创建一个包文件夹,其中包含所有模块。

\n
project\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 poetry.lock\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 scripts\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 project\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_module.py\n
Run Code Online (Sandbox Code Playgroud)\n

pyproject.toml这样:

\n
[tool.poetry]\nname = "project"\nversion = "0.1.0"\ndescription = ""\nauthors = ["finswimmer <finswimmer@example.com>"]\n\n[tool.poetry.dependencies]\npython = "^3.9"\n\n[tool.poetry.dev-dependencies]\n\n[build-system]\nrequires = ["poetry-core"]\nbuild-backend = "poetry.core.masonry.api"\n
Run Code Online (Sandbox Code Playgroud)\n

别忘了跑poetry install一次。这将以可编辑模式安装项目。

\n