用于设置、测试和安装Python库的依赖项(需求)



我正在编写一个Python包,通过PyPi.org进行分发和安装。有很多例子,但我无法在调用setup()时正确使用install_requiressetup_requirestests_require参数。

我知道install_requires是库本身的最小依赖项集。这个很简单。

  1. setup_requirestests_require之间有什么区别(如果需要的话(
  2. 如果我想在CI环境中运行单元测试,那么每一个测试都需要做些什么?单元测试应该在安装库时运行吗
  3. 当我设置本地虚拟机来开发和测试库时,我希望安装哪一组要求

setup_requires:不要使用它。这是一个失败的setuptools实验。它现在已经被PEP517废弃了(请参阅此处的弃用注释(,其中构建系统在该配置部分声明性地指定构建需求,例如:

[build-system]  # in pyproject.toml
requires = ["setuptools >= 40.6.0", "wheel"]
build-backend = "setuptools.build_meta"

tests_require:不要用它。这是一个失败的distutils实验。它已被pytesttox等项目弃用(请参阅此处的弃用说明(。没有人再通过调用python setup.py test来运行他们的测试,也没有人希望他们的测试依赖项下载到项目目录中——他们希望它们安装到virtualenv中:

[options.extras_require]  # in setup.cfg
test =
pytest
pytest-cov

因此,要直接解决以下三点:

  1. 这两个都是cruft,省略它们。

  2. 在其他地方指定您的测试需求(在setuptools"extras_request"或普通的旧requirements_test.txt文件中(。是的,测试应该针对安装的代码运行

  3. 当您设置本地虚拟机来开发和测试库时,应该同时安装本地包和测试需求,例如pip install -e ".[test]"

相关内容

  • 没有找到相关文章

最新更新