From c552ae8838a27c29f2e1795791c152ef136826cd Mon Sep 17 00:00:00 2001 From: shirt-dev <2660574+shirt-dev@users.noreply.github.com> Date: Thu, 25 Feb 2021 17:58:02 -0500 Subject: [PATCH] Fix `get_executable_path` (#117) Authored-by: shirtjs <2660574+shirtjs@users.noreply.github.com> --- yt_dlp/utils.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 0dbb854673..12bc637f85 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -5945,9 +5945,13 @@ def make_dir(path, to_screen=None): def get_executable_path(): - path = os.path.dirname(sys.argv[0]) - if os.path.basename(sys.argv[0]) == '__main__': # Running from source - path = os.path.join(path, '..') + from zipimport import zipimporter + if hasattr(sys, 'frozen'): # Running from PyInstaller + path = os.path.dirname(sys.executable) + elif isinstance(globals().get('__loader__'), zipimporter): # Running from ZIP + path = os.path.join(os.path.dirname(__file__), '../..') + else: + path = os.path.join(os.path.dirname(__file__), '..') return os.path.abspath(path)