Skip to content

PyPI mapping only works for Conda-Forge #6019

Description

@avcopan

Checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pixi, using pixi --version.

Reproducible example

Commands I ran and their output:

pixi run python -c "import lower_level_package; lower_level_package.greet()"
# Traceback (most recent call last):
#  File "<string>", line 1, in <module>
#    import lower_level_package; lower_level_package.greet()
#    ^^^^^^^^^^^^^^^^^^^^^^^^^^
# ModuleNotFoundError: No module named 'lower_level_package'

pyproject.toml file (goes along with pixi.toml file below):

[project]
name = "higher-level-package"
version = "0.0.0"
authors = [{name = "Andreas V. Copan", email = "avcopan@uga.edu"}]
requires-python = ">= 3.12"
dependencies = [
    "lower-level-package>=0.0.0",
]

[build-system]
build-backend = "uv_build"
requires = ["uv_build"]

pixi.toml file:

[workspace]
channels = ["conda-forge", "avcopan"]
platforms = ["linux-64", "osx-64", "osx-arm64"]
preview = ["pixi-build"]

[dependencies]
higher-level-package = { path = "." }

[package]
name = "higher-level-package"
version = "0.0.0"

[package.build]
backend = { name = "pixi-build-python", version = "*" }

[package.build.config]
ignore-pyproject-manifest = false
ignore-pypi-mapping = false

pixi info output:

System
------------
       Pixi version: 0.67.2
        TLS backend: rustls
           Platform: linux-64
   Virtual packages: __unix=0=0
                   : __linux=6.6.87.2=0
                   : __glibc=2.39=0
                   : __cuda=12.0=0
                   : __archspec=1=skylake
          Cache dir: /home/avcopan/.cache/rattler/cache
       Auth storage: /home/avcopan/.rattler/credentials.json
   Config locations: No config files found

Global
------------
            Bin dir: /home/avcopan/.pixi/bin
    Environment dir: /home/avcopan/.pixi/envs
       Manifest dir: /home/avcopan/.pixi/manifests/pixi-global.toml

Workspace
------------
               Name: higher-level-package
      Manifest file: /home/avcopan/code/misc/pixi-high-low-example/higher-level-package-attempt1/pixi.toml
       Last updated: 05-05-2026 13:09:30

Environments
------------
        Environment: default
           Features: default
           Channels: conda-forge, avcopan
   Dependency count: 1
       Dependencies: higher-level-package
   Target platforms: osx-arm64, linux-64, osx-64
    Prefix location: /home/avcopan/code/misc/pixi-high-low-example/higher-level-package-attempt1/.pixi/envs/default

Other files (e.g. script files, source files, etc.):

higher-level-package-attempt1-main.zip

Issue description

I am running into some issues in using pixi-build to develop a package along with its dependency. This is a minimal reproducer for the first issue I encountered.

Issue: When using the PyPI mapping functionality, I am able to map packages that exist on Conda-Forge, but for packages that exist on other channels, Pixi silently fails to find them. In this example, I created a package on PyPI (which I promise to remove) and on my Anaconda.org channel. I added it as a PyPI dependency in pyproject.toml and set ignore-pypi-mapping = false. Attached is the repository.

Expected behavior

I would expect Pixi to be able to find the lower-level-package, since I have specified "avcopan" as a channel. I would also expect Pixi to raise an Error if it couldn't find the dependency. Currently it silently fails.

Note that adding lower-level-package to the dependencies in the pixi.toml file as well does fix this issue, but in that case I no longer have a single source of truth and the PyPI mapping isn't doing anything.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions