From 90d1cb2af03515ea14c8aa61a2629b2691d97a65 Mon Sep 17 00:00:00 2001 From: Martin Zibricky Date: Tue, 13 Oct 2015 20:48:32 +0200 Subject: [PATCH] Issue #1580: Fix collect_submodules() to split whole suffix like .cpython-34m.so while evaluating filenames. --- PyInstaller/utils/hooks/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/PyInstaller/utils/hooks/__init__.py b/PyInstaller/utils/hooks/__init__.py index 43541e2518..35b0e33b7d 100755 --- a/PyInstaller/utils/hooks/__init__.py +++ b/PyInstaller/utils/hooks/__init__.py @@ -17,7 +17,7 @@ import sys from ... import compat -from ...compat import is_py2, is_win, is_py3, is_darwin +from ...compat import is_py2, is_win, is_py3, is_darwin, EXTENSION_SUFFIXES from ...config import CONF from ...utils import misc from ... import HOMEPATH @@ -592,7 +592,13 @@ def remove_suffix(string, suffix): def remove_file_extension(filename): """ This function returns filename without its extension. + + For Python C modules it removes even whole '.cpython-34m.so' etc. """ + for suff in EXTENSION_SUFFIXES: + if filename.endswith(suff): + return filename[0:filename.rfind(suff)] + # Fallback to ordinary 'splitext'. return os.path.splitext(filename)[0]