Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-01-16 13:11:05 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-01-16 19:36:29 +0300
commit7c2f0074f3fe2411daa7a6e351d7cbc535246871 (patch)
treed14d88373b7d69de649b29fd65c0c5b9b6df8406 /source/creator
parentabdaf2a4f509f79bf2f0eb231341858045957573 (diff)
Python: disable environment variables by default
This avoids the problem where Blender doesn't start because the PYTHONPATH points to an incompatible Python version, see T72807. Previously we chose to assume people who set the PYTHONPATH know what they're doing, however users may have set this for non Blender projects. So it's not obvious that this is the cause of Blender not to launch on their system. To use Python's environment vars, pass the argument: --python-use-system-env Note that this only impacts Python run-time environment variables documented in `python --help`, Access from `os.environ` remains.
Diffstat (limited to 'source/creator')
-rw-r--r--source/creator/creator_args.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c
index 6e3988a5ea6..c7df4888c0d 100644
--- a/source/creator/creator_args.c
+++ b/source/creator/creator_args.c
@@ -559,6 +559,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo
BLI_argsPrintArgDoc(ba, "--python-expr");
BLI_argsPrintArgDoc(ba, "--python-console");
BLI_argsPrintArgDoc(ba, "--python-exit-code");
+ BLI_argsPrintArgDoc(ba, "--python-use-system-env");
BLI_argsPrintArgDoc(ba, "--addons");
printf("\n");
@@ -1907,6 +1908,17 @@ static int arg_handle_python_exit_code_set(int argc, const char **argv, void *UN
}
}
+static const char arg_handle_python_use_system_env_set_doc[] =
+ "\n\t"
+ "Allow Python to use system environment variables such as 'PYTHONPATH'.";
+static int arg_handle_python_use_system_env_set(int UNUSED(argc),
+ const char **UNUSED(argv),
+ void *UNUSED(data))
+{
+ BPY_python_use_system_env();
+ return 0;
+}
+
static const char arg_handle_addons_set_doc[] =
"<addon(s)>\n"
"\tComma separated list of add-ons (no spaces).";
@@ -2188,6 +2200,9 @@ void main_args_setup(bContext *C, bArgs *ba)
ba, 1, NULL, "--env-system-scripts", CB_EX(arg_handle_env_system_set, scripts), NULL);
BLI_argsAdd(ba, 1, NULL, "--env-system-python", CB_EX(arg_handle_env_system_set, python), NULL);
+ BLI_argsAdd(
+ ba, 1, NULL, "--python-use-system-env", CB(arg_handle_python_use_system_env_set), NULL);
+
/* second pass: custom window stuff */
BLI_argsAdd(ba, 2, "-p", "--window-geometry", CB(arg_handle_window_geometry), NULL);
BLI_argsAdd(ba, 2, "-w", "--window-border", CB(arg_handle_with_borders), NULL);