diff --git a/src/pyodide/internal/setupPackages.ts b/src/pyodide/internal/setupPackages.ts index 775b2150630..0d20566fc9e 100644 --- a/src/pyodide/internal/setupPackages.ts +++ b/src/pyodide/internal/setupPackages.ts @@ -131,6 +131,11 @@ class SitePackagesDir { * TODO(later): This needs to be removed when external package loading is enabled. */ export function buildSitePackages(requirements: Set): SitePackagesDir { + if (EmbeddedPackagesTarReader.read === undefined) { + // Package retrieval is enabled, so the embedded tar reader isn't initialised. + return new SitePackagesDir(); + } + const [bigTarInfo, bigTarSoFiles] = parseTarInfo(EmbeddedPackagesTarReader); let requirementsInBigBundle = new Set([...STDLIB_PACKAGES]); diff --git a/src/workerd/server/workerd-api.c++ b/src/workerd/server/workerd-api.c++ index b11b81f537a..2ea923053a9 100644 --- a/src/workerd/server/workerd-api.c++ +++ b/src/workerd/server/workerd-api.c++ @@ -572,10 +572,14 @@ void WorkerdApi::compileModules(jsg::Lock& lockParam, makePyodideMetadataReader(conf, impl->pythonConfig), jsg::ModuleRegistry::Type::INTERNAL); // Inject packages tar file - // TODO(later): This shouldn't exist once featureFlags.getPythonExternalPackages() is true. - modules->addBuiltinModule("pyodide-internal:packages_tar_reader", - jsg::alloc(PYODIDE_PACKAGES_TAR.get()), - workerd::jsg::ModuleRegistry::Type::INTERNAL); + if (featureFlags.getPythonExternalPackages()) { + modules->addBuiltinModule("pyodide-internal:packages_tar_reader", "export default { }"_kj, + workerd::jsg::ModuleRegistry::Type::INTERNAL, {}); + } else { + modules->addBuiltinModule("pyodide-internal:packages_tar_reader", + jsg::alloc(PYODIDE_PACKAGES_TAR.get()), + workerd::jsg::ModuleRegistry::Type::INTERNAL); + } // Inject artifact bundler. modules->addBuiltinModule("pyodide-internal:artifacts",