13

我是诗歌新手,想用 pytest 设置它。我在以下设置中有一个包 mylib

├── dist
│   ├── mylib-0.0.1-py3-none-any.whl
│   └── mylib-0.0.1.tar.gz
├── poetry.lock
├── mylib
│   ├── functions.py
│   ├── __init__.py
│   └── utils.py
├── pyproject.toml
├── README.md
└── tests
    └── test_functions.py

在 test_functions 我有

import mylib

但是,当我跑步时

poetry run pytest

它抱怨mylib不被包括在内。我可以跑

pip install dist/mylib-0.0.1-py3-none-any.whl

但这会使我的 python 环境与 mylib 混淆。我也想将该环境用于其他软件包。

我的问题是:使用诗歌和 pytest 的正确方法是什么?

我的底层 python 环境是一个干净的 pyenv python 3.8。使用 pyproject.toml 我为 mylib 创建了一个基于项目的虚拟环境。

4

2 回答 2

7

您需要运行poetry install以设置您的开发环境。它将安装所有软件包和开发要求,一旦完成,它将对您的源代码进行开发安装。

您只需要运行一次,代码更改将直接传播,不需要再次运行安装。


如果您已经设置了所需的虚拟环境,请注意在运行安装命令时它已被激活。如果您不这样做,poetry将尝试创建一个新的虚拟环境并使用它,这可能不是您想要的。

于 2020-05-13T22:12:37.553 回答
3

仅供参考,您还需要在 pyproject.toml 中将 pytest 指定为开发依赖项。

如果您没有,poetry run 在您的家庭环境中找到 pytest 实例,但该实例不会找到 venv。我认为文档并没有说得很清楚。

于 2021-07-13T22:02:19.807 回答