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 to release-maint23.
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)