From fa52cf541d38ee8796bfce02711915e33a32fff5 Mon Sep 17 00:00:00 2001 From: martinRenou Date: Mon, 16 May 2022 13:19:11 +0200 Subject: [PATCH] Try building from the same prefix --- Dockerfile | 10 ++++----- jupyterlite_xeus_python/env_build_addon.py | 24 ++++++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index bdad6c7..9cae4c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,18 +29,18 @@ RUN git clone https://github.com/emscripten-core/emsdk.git && \ RUN micromamba create -n xeus-python-kernel \ --platform=emscripten-32 \ + --root-prefix=/tmp/xeus-python-kernel \ -c https://repo.mamba.pm/emscripten-forge \ -c https://repo.mamba.pm/conda-forge \ --yes \ - python=$PYTHON_VERSION xeus-python \ - numpy matplotlib + python=$PYTHON_VERSION xeus-python RUN mkdir -p xeus-python-kernel && cd xeus-python-kernel && \ export FILE_PACKAGER=/tmp/emsdk/upstream/emscripten/tools/file_packager.py && \ /tmp/emsdk/emsdk activate 3.1.2 3.1.2 && \ - cp $MAMBA_ROOT_PREFIX/envs/xeus-python-kernel/bin/xpython_wasm.js . && \ - cp $MAMBA_ROOT_PREFIX/envs/xeus-python-kernel/bin/xpython_wasm.wasm . && \ - emboa pack python core $MAMBA_ROOT_PREFIX/envs/xeus-python-kernel --version=$PYTHON_VERSION + cp /tmp/xeus-python-kernel/envs/xeus-python-kernel/bin/xpython_wasm.js . && \ + cp /tmp/xeus-python-kernel/envs/xeus-python-kernel/bin/xpython_wasm.wasm . && \ + emboa pack python core /tmp/xeus-python-kernel/envs/xeus-python-kernel --version=$PYTHON_VERSION COPY copy_output.sh . diff --git a/jupyterlite_xeus_python/env_build_addon.py b/jupyterlite_xeus_python/env_build_addon.py index 40cc2be..e0e9d36 100644 --- a/jupyterlite_xeus_python/env_build_addon.py +++ b/jupyterlite_xeus_python/env_build_addon.py @@ -61,17 +61,16 @@ def pre_build(self, manager): return [] self.cwd = TemporaryDirectory() - self.prefix = TemporaryDirectory() - - env_name = str(uuid4()) + self.prefix = "/tmp/xeus-python-kernel" + self.env_name = "xeus-python-kernel" # Create emscripten env with the given packages check_output([ "micromamba", "create", "--yes", - "--root-prefix", self.prefix.name, - "--name", env_name, + "--root-prefix", self.prefix, + "--name", self.env_name, "--platform=emscripten-32", "-c", "https://repo.mamba.pm/emscripten-forge", "-c", "https://repo.mamba.pm/conda-forge", @@ -83,7 +82,7 @@ def pre_build(self, manager): # Pack the environment check_output([ "emboa", "pack", "python", "core", - str(Path(self.prefix.name) / "envs" / env_name), + str(Path(self.prefix) / "envs" / self.env_name), f"--version={PYTHON_VERSION}" ], cwd=self.cwd.name) @@ -102,12 +101,19 @@ def pre_build(self, manager): for file in ["python_data.js", "python_data.data"]: yield dict( name=f"copy:{file}", - actions=[(self.copy_one, [Path(self.cwd.name) / file, dest / file])], + actions=[(self.copy_one, [ + Path(self.cwd.name) / file, + dest / file]) + ], ) + for file in ["xpython_wasm.js", "xpython_wasm.wasm"]: yield dict( name=f"copy:{file}", - actions=[(self.copy_one, [Path(self.prefix.name) / "envs" / env_name / "bin" / file, dest / file])], + actions=[(self.copy_one, [ + Path(self.prefix) / "envs" / self.env_name / "bin" / file, + dest / file + ])], ) def post_build(self, manager): @@ -117,6 +123,6 @@ def post_build(self, manager): return [] shutil.rmtree(self.cwd.name, ignore_errors=True) - shutil.rmtree(self.prefix.name, ignore_errors=True) + shutil.rmtree(self.prefix, ignore_errors=True) return []