您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

检查我的Python是否具有所有必需的软件包

检查我的Python是否具有所有必需的软件包

进行更新和改进的方法是通过distutils.text_file.TextFile。有关详细信息,请参见Acumenus答案。

根据Zaur的回答,假设您确实使用了需求文件,则可能需要进行单元测试(可能在中)tests/test_requirements.py,以确认软件包的可用性。

此外,此方法使用子测试独立确认每个要求。这很有用,以便记录所有故障。如果没有子测试,则仅记录单个失败。

"""Test availability of required packages."""

import unittest
from pathlib import Path

import pkg_resources

_REQUIREMENTS_PATH = Path(__file__).parent.with_name("requirements.txt")


class TestRequirements(unittest.TestCase):
    """Test availability of required packages."""

    def test_requirements(self):
        """Test that each required package is available."""
        # Ref: https://stackoverflow.com/a/45474387/
        requirements = pkg_resources.parse_requirements(_REQUIREMENTS_PATH.open())
        for requirement in requirements:
            requirement = str(requirement)
            with self.subTest(requirement=requirement):
                pkg_resources.require(requirement)

这样做的pythonic方法是通过pkg_resourcesAPI。要求以setuptools可以理解的格式编写。例如:

Werkzeug>=0.6.1
Flask
Django>=1.3

示例代码

import pkg_resources
from pkg_resources import DistributionNotFound, VersionConflict

# dependencies can be any iterable with strings, 
# e.g. file line-by-line iterator
dependencies = [
  'Werkzeug>=0.6.1',
  'Flask>=0.9',
]

# here, if a dependency is not met, a DistributionNotFound or VersionConflict
# exception is thrown. 
pkg_resources.require(dependencies)
python 2022/1/1 18:44:04 有346人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶