diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 8f076ad914d9a..0736c4464b937 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -1167,7 +1167,17 @@ impl Build { /// Path to the python interpreter to use fn python(&self) -> &Path { - self.config.python.as_ref().unwrap() + if self.config.build.ends_with("apple-darwin") { + // Force /usr/bin/python3 on macOS for LLDB tests because we're loading the + // LLDB plugin's compiled module which only works with the system python + // (namely not Homebrew-installed python) + Path::new("/usr/bin/python3") + } else { + self.config + .python + .as_ref() + .expect("python is required for running LLDB or rustdoc tests") + } } /// Temporary directory that extended error information is emitted to. diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs index 8c2899c1ac01e..c96e6f9a3678f 100644 --- a/src/bootstrap/sanity.rs +++ b/src/bootstrap/sanity.rs @@ -103,7 +103,9 @@ pub fn check(build: &mut Build) { .take() .map(|p| cmd_finder.must_have(p)) .or_else(|| env::var_os("BOOTSTRAP_PYTHON").map(PathBuf::from)) // set by bootstrap.py - .or_else(|| Some(cmd_finder.must_have("python"))); + .or_else(|| cmd_finder.maybe_have("python")) + .or_else(|| cmd_finder.maybe_have("python3")) + .or_else(|| cmd_finder.maybe_have("python2")); build.config.nodejs = build .config diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index c8b76809abad7..00ede2140a693 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -1403,14 +1403,7 @@ note: if you're sure you want to do this, please open an issue as to why. In the cmd.arg("--docck-python").arg(builder.python()); - if builder.config.build.ends_with("apple-darwin") { - // Force /usr/bin/python3 on macOS for LLDB tests because we're loading the - // LLDB plugin's compiled module which only works with the system python - // (namely not Homebrew-installed python) - cmd.arg("--lldb-python").arg("/usr/bin/python3"); - } else { - cmd.arg("--lldb-python").arg(builder.python()); - } + cmd.arg("--lldb-python").arg(builder.python()); if let Some(ref gdb) = builder.config.gdb { cmd.arg("--gdb").arg(gdb);