From 9ad75fb12fbd817b1e8075f850465b35b4716933 Mon Sep 17 00:00:00 2001 From: Linus Xu Date: Sun, 23 Aug 2026 16:35:24 +0800 Subject: [PATCH 1/4] Switch to sys.base_prefix for better Lib path detection --- src/proxy/build_pythoncore.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proxy/build_pythoncore.py b/src/proxy/build_pythoncore.py index 481dec5..4c1da66 100644 --- a/src/proxy/build_pythoncore.py +++ b/src/proxy/build_pythoncore.py @@ -4,7 +4,7 @@ _EXCLUDE_MODULES = ["ensurepip", "idlelib", "test", "tkinter", "turtle_demo", "venv"] -libdir = Path(sys.executable).parent.joinpath("Lib") +libdir = Path(sys.base_prefix).joinpath("Lib") assert libdir.exists() with zipfile.PyZipFile(sys.argv[1], optimize=2, mode="w") as fp: From 387ae46866d683f2aef0c15d92e203cbae07e77e Mon Sep 17 00:00:00 2001 From: Linus Xu Date: Fri, 16 Oct 2026 09:06:46 +0800 Subject: [PATCH 2/4] Add basic sanity check for pythoncore.zip An incorrectly generated `pythoncore.zip` that passes the original `assert` would only break MO2 on runtime rather than build time, which complicates troubleshooting. --- src/proxy/build_pythoncore.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/proxy/build_pythoncore.py b/src/proxy/build_pythoncore.py index 4c1da66..2394ec4 100644 --- a/src/proxy/build_pythoncore.py +++ b/src/proxy/build_pythoncore.py @@ -12,3 +12,5 @@ for path in libdir.iterdir(): if path.is_dir() and path.name not in _EXCLUDE_MODULES: fp.writepy(path) # pyright: ignore[reportArgumentType] + assert fp.namelist() + From 5c6e2458ade6dad574b5ebbd4e739d5022a4b791 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 01:06:56 +0000 Subject: [PATCH 3/4] [pre-commit.ci] Auto fixes from pre-commit.com hooks. --- src/proxy/build_pythoncore.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/proxy/build_pythoncore.py b/src/proxy/build_pythoncore.py index 2394ec4..368c802 100644 --- a/src/proxy/build_pythoncore.py +++ b/src/proxy/build_pythoncore.py @@ -13,4 +13,3 @@ if path.is_dir() and path.name not in _EXCLUDE_MODULES: fp.writepy(path) # pyright: ignore[reportArgumentType] assert fp.namelist() - From f26e22e343bb875987abe99c430c71e6b5dce2fe Mon Sep 17 00:00:00 2001 From: Linus Xu Date: Fri, 16 Oct 2026 09:27:34 +0800 Subject: [PATCH 4/4] Add message for new assertion --- src/proxy/build_pythoncore.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proxy/build_pythoncore.py b/src/proxy/build_pythoncore.py index 368c802..ecc857f 100644 --- a/src/proxy/build_pythoncore.py +++ b/src/proxy/build_pythoncore.py @@ -12,4 +12,4 @@ for path in libdir.iterdir(): if path.is_dir() and path.name not in _EXCLUDE_MODULES: fp.writepy(path) # pyright: ignore[reportArgumentType] - assert fp.namelist() + assert fp.namelist(), "Generated pythoncore.zip is empty. This will not block the build but will break MO2 at runtime!"