Fix pyinstaller compatibility (#1441)

Close https://github.com/zalando/patroni/issues/1440
This commit is contained in:
Alexander Kukushkin
2020-03-13 16:36:12 +01:00
committed by GitHub
parent d74a4b23a6
commit d82301688f
2 changed files with 9 additions and 2 deletions
+4
View File
@@ -169,9 +169,13 @@ class Patroni(object):
def patroni_main():
import argparse
from multiprocessing import freeze_support
from patroni.config import Config, ConfigParseError
from patroni.validator import schema
freeze_support()
parser = argparse.ArgumentParser()
parser.add_argument('--version', action='version', version='%(prog)s {0}'.format(__version__))
parser.add_argument('--validate-config', action='store_true', help='Run config validator and exit')
+5 -2
View File
@@ -66,8 +66,11 @@ def dcs_modules():
module_prefix = __package__ + '.'
if getattr(sys, 'frozen', False):
importer = pkgutil.get_importer(dcs_dirname)
return [module for module in list(importer.toc) if module.startswith(module_prefix) and module.count('.') == 2]
toc = set()
for importer in pkgutil.iter_importers(dcs_dirname):
if hasattr(importer, 'toc'):
toc |= importer.toc
return [module for module in toc if module.startswith(module_prefix) and module.count('.') == 2]
else:
return [module_prefix + name for _, name, is_pkg in pkgutil.iter_modules([dcs_dirname]) if not is_pkg]