Skip to content

Installation of packages happens twice when a specific version is requested which is also a dependency of a locked/builtin packaged #103

@maartenbreddels

Description

@maartenbreddels

🐛 Bug

  1. I want to install typing-extensions==4.10.0, no problem, import micropip; await micropip.install(["typing-extensions==4.10.0"]) and I get it from pypi.
  2. I add pydantic, so I execute: import micropip; await micropip.install(["typing-extensions==4.10.0", "pydantic"]). In the dev console I first see 4.10.0 fetched from pypi, then pydantic from the cdn, and then (the bug) it fetches an older version from the CDN (https://cdn.jsdelivr.net/pyodide/v0.25.1/full/typing_extensions-4.7.1-py3-none-any.whl)

It seems the loadPackage from pyodide installs the dependencies of pydantic without realizing 4.10.0 is installed. I also see the old install overwrites the 4.10.0 one.

To Reproduce

Go to https://pyodide.org/en/stable/console.html

and execute import micropip; await micropip.install(["typing-extensions==4.10.0", "pydantic"])

Expected behavior

I should not get typing_extensions 4.7.0

Environment

  • Pyodide Version 0.25.0

A possible workaround would be to install 1 package at a time, but I don't know if that leads to different behaviour.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions