diff --git a/PyInstaller/utils/hooks/__init__.py b/PyInstaller/utils/hooks/__init__.py index 14efbc07a8..e56429f7a9 100755 --- a/PyInstaller/utils/hooks/__init__.py +++ b/PyInstaller/utils/hooks/__init__.py @@ -490,8 +490,12 @@ class method (e.g., `idontevenknow<1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1`) is module_name = requirements_parsed.project_name version = get_module_attribute(module_name, version_attr) - # Compare this version against the version parsed from these requirements. - return version in requirements_parsed + if not version: + # Module does not exist in the system. + return False + else: + # Compare this version against the one parsed from the requirements. + return version in requirements_parsed def is_package(module_name): diff --git a/tests/unit/test_hookutils.py b/tests/unit/test_hookutils.py index 574c6036f2..4f7d371757 100644 --- a/tests/unit/test_hookutils.py +++ b/tests/unit/test_hookutils.py @@ -15,7 +15,8 @@ from PyInstaller.utils.hooks import collect_data_files, collect_submodules, \ get_module_file_attribute, remove_prefix, remove_suffix, \ - remove_file_extension, is_module_or_submodule + remove_file_extension, is_module_or_submodule, \ + is_module_satisfies from PyInstaller.compat import exec_python, ALL_SUFFIXES @@ -188,6 +189,10 @@ def test_is_module_or_submodule(): assert not is_module_or_submodule('foo', 'foo.bar') +def test_is_module_satisfies_package_not_installed(): + assert is_module_satisfies('pytest') + assert not is_module_satisfies('magnumopus-no-package-test-case') + _DATA_BASEPATH = join(TEST_MOD_PATH, TEST_MOD) _DATA_PARAMS = [