Check if my Python has all required packages

后端 未结 7 1867
悲&欢浪女
悲&欢浪女 2020-12-23 09:53

I have a requirements.txt file with a list of packages that are required for my virtual environment. Is it possible to find out whether all the packages mention

7条回答
  •  Happy的楠姐
    2020-12-23 10:44

    Based on the answer by Zaur, assuming you indeed use a requirements file, you may want a unit test, perhaps in tests/test_requirements.py, that confirms the availability of packages.

    Moreover, this approach uses a subtest to independently confirm each requirement. This is useful so that all failures are documented. Without subtests, only a single failure is documented.

    """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)
    

提交回复
热议问题