From 0273eac15e45da3749c50714568778c9038d325a Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Thu, 26 Jan 2023 16:35:30 +0100 Subject: [PATCH] Compatibility with pyinstaller (#2537) it doesn't like relative imports and not recognise `http.server` imported with `six`. The last one is explicitly added to the list of `hiddenimports()` and will break compatibility with python 2.7, which support will be dropped in the next Patroni release anyway. Close https://github.com/zalando/patroni/issues/2535 --- mkbinary.sh | 4 ++-- patroni.spec | 2 +- patroni/__main__.py | 18 +++++++++--------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mkbinary.sh b/mkbinary.sh index 86cf8215..4c668ef6 100755 --- a/mkbinary.sh +++ b/mkbinary.sh @@ -1,5 +1,5 @@ #!/bin/sh set -e -pip install --ignore-installed setuptools==19.2 pyinstaller -pyinstaller --clean --onefile patroni.spec +pip install --ignore-installed pyinstaller +pyinstaller --clean patroni.spec diff --git a/patroni.spec b/patroni.spec index 2afe8eac..121e6f5d 100644 --- a/patroni.spec +++ b/patroni.spec @@ -8,7 +8,7 @@ def hiddenimports(): sys.path.insert(0, '.') try: import patroni.dcs - return patroni.dcs.dcs_modules() + return patroni.dcs.dcs_modules() + ['http.server'] finally: sys.path.pop(0) diff --git a/patroni/__main__.py b/patroni/__main__.py index 1849690e..4aa21424 100644 --- a/patroni/__main__.py +++ b/patroni/__main__.py @@ -3,7 +3,7 @@ import os import signal import time -from .daemon import AbstractPatroniDaemon, abstract_main +from patroni.daemon import AbstractPatroniDaemon, abstract_main logger = logging.getLogger(__name__) @@ -11,13 +11,13 @@ logger = logging.getLogger(__name__) class Patroni(AbstractPatroniDaemon): def __init__(self, config): - from .api import RestApiServer - from .dcs import get_dcs - from .ha import Ha - from .postgresql import Postgresql - from .request import PatroniRequest - from .version import __version__ - from .watchdog import Watchdog + from patroni.api import RestApiServer + from patroni.dcs import get_dcs + from patroni.ha import Ha + from patroni.postgresql import Postgresql + from patroni.request import PatroniRequest + from patroni.version import __version__ + from patroni.watchdog import Watchdog super(Patroni, self).__init__(config) @@ -138,7 +138,7 @@ def patroni_main(): def main(): if os.getpid() != 1: - from . import check_psycopg + from patroni import check_psycopg check_psycopg() return patroni_main()