From 9a71cfec41577ce7c766a99d41c3cfc5c24b5956 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 29 Mar 2023 17:57:12 +0200 Subject: [PATCH 1/4] Allow passing an empty environment explicitly like `env = {}` --- openpype/lib/execute.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/lib/execute.py b/openpype/lib/execute.py index 6f9a095285..c01aad734f 100644 --- a/openpype/lib/execute.py +++ b/openpype/lib/execute.py @@ -198,7 +198,7 @@ def run_openpype_process(*args, **kwargs): args = get_openpype_execute_args(*args) env = kwargs.pop("env", None) # Keep env untouched if are passed and not empty - if not env: + if env is None: # Skip envs that can affect OpenPype process # - fill more if you find more env = clean_envs_for_openpype_process(os.environ) From 391b7450dd98bc748253c39630fc45c023ca7be9 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 29 Mar 2023 17:58:22 +0200 Subject: [PATCH 2/4] Don't pass empty `env` since it didn't do that prior to this either --- openpype/pipeline/colorspace.py | 3 +-- openpype/plugins/publish/extract_burnin.py | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/openpype/pipeline/colorspace.py b/openpype/pipeline/colorspace.py index 2085e2d37f..4cea92a4e4 100644 --- a/openpype/pipeline/colorspace.py +++ b/openpype/pipeline/colorspace.py @@ -218,8 +218,7 @@ def get_data_subprocess(config_path, data_type): log.info("Executing: {}".format(" ".join(args))) process_kwargs = { - "logger": log, - "env": {} + "logger": log } run_openpype_process(*args, **process_kwargs) diff --git a/openpype/plugins/publish/extract_burnin.py b/openpype/plugins/publish/extract_burnin.py index 95575444b2..ed39bd9354 100644 --- a/openpype/plugins/publish/extract_burnin.py +++ b/openpype/plugins/publish/extract_burnin.py @@ -336,8 +336,7 @@ class ExtractBurnin(publish.Extractor): # Run burnin script process_kwargs = { - "logger": self.log, - "env": {} + "logger": self.log } run_openpype_process(*args, **process_kwargs) From 168a49dba66b1dca067b0909300290487ae94e49 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 29 Mar 2023 18:00:03 +0200 Subject: [PATCH 3/4] Remove both `PYTHONPATH` and `PYTHONHOME` - Fixes an issue with Houdini Py3.7 conflict with OpenPype Py3.9 because Houdini sets `PYTHONHOME` --- openpype/lib/execute.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/openpype/lib/execute.py b/openpype/lib/execute.py index c01aad734f..0c5ae2df8a 100644 --- a/openpype/lib/execute.py +++ b/openpype/lib/execute.py @@ -170,11 +170,13 @@ def clean_envs_for_openpype_process(env=None): """ if env is None: env = os.environ - return { - key: value - for key, value in env.items() - if key not in ("PYTHONPATH",) - } + + # Exclude some environment variables from a copy of the environment + env = env.copy() + for key in ["PYTHONPATH", "PYTHONHOME"]: + env.pop(key, None) + + return env def run_openpype_process(*args, **kwargs): From 35a5d5f172a5a04fe96d4e568ecd37f301f485f4 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 30 Mar 2023 19:43:33 +0200 Subject: [PATCH 4/4] Revert for backwards compatibility of client code Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- openpype/lib/execute.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/lib/execute.py b/openpype/lib/execute.py index 0c5ae2df8a..7735eb141b 100644 --- a/openpype/lib/execute.py +++ b/openpype/lib/execute.py @@ -200,7 +200,7 @@ def run_openpype_process(*args, **kwargs): args = get_openpype_execute_args(*args) env = kwargs.pop("env", None) # Keep env untouched if are passed and not empty - if env is None: + if not env: # Skip envs that can affect OpenPype process # - fill more if you find more env = clean_envs_for_openpype_process(os.environ)