一个软件包是否可以只在测试时需要,而在安装时不需要?[英] Can a package be required only for tests, not for installation?

本文是小编为大家收集整理的关于一个软件包是否可以只在测试时需要,而在安装时不需要?的处理方法,想解了一个软件包是否可以只在测试时需要,而在安装时不需要?的问题怎么解决?一个软件包是否可以只在测试时需要,而在安装时不需要?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在向现有的 pip 可安装项目添加功能,项目所有者认为我将 pandas 添加到 setup.py 安装要求"太重",因为该项目应该保持苗条.我添加的功能不需要 pandas (因为该功能是在 pandas.DataFrame 对象之上的操作),但我为它编写的单元测试需要调用 pandas 到 setUp 一个测试 DataFrame 来变异与.

有没有办法要求 pandas 仅用于单元测试?还是我只是不将其添加到需求中,并在运行该单元测试时引发错误以手动安装 pandas?

推荐答案

是的,在setuptools中很简单:

# setup.py
from setuptools import setup

setup(
    name='your_app',
    ...
    install_requires=...
    extras_require={
        'dev': [
            'pytest', 'pandas', 'coverage',  # etc
        ]
    },
)

现在,当您在应用上开发时,请使用:

pip install --editable .[dev]

本文地址:https://www.itbaoku.cn/post/1728127.html