From aaf1c8dc9e6a3c83b974ebea4b2e3929526689c3 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Fri, 14 Nov 2003 10:28:42 +0000 Subject: SF #841977 - modulefinder fails to find extension modules in packages The find_all_submodules() method in modulefinder only looks for *.py, *.pyc, and *.pyo files. Python extension modules are only found if they are referenced in import statements somewhere. This patch uses the actual list from imp.get_suffixes(). Backported myself. --- Lib/modulefinder.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/modulefinder.py b/Lib/modulefinder.py index be59f97..6dec0e5 100644 --- a/Lib/modulefinder.py +++ b/Lib/modulefinder.py @@ -210,7 +210,12 @@ class ModuleFinder: if not m.__path__: return modules = {} - suffixes = [".py", ".pyc", ".pyo"] + # 'suffixes' used to be a list hardcoded to [".py", ".pyc", ".pyo"]. + # But we must also collect Python extension modules - although + # we cannot separate normal dlls from Python extensions. + suffixes = [] + for triple in imp.get_suffixes(): + suffixes.append(triple[0]) for dir in m.__path__: try: names = os.listdir(dir) -- cgit v0.12