pythonpipdependency-managementmicromamba

Micromamba and Pip Show Different Versions of ydata-profiling – Is This a Bug?


The ydata-profiling library is working fine, but the normal way of seeing in "code" what version of the library is showing inconsistent results. I am running windows, micromamba, and the minimal set up would be this:

# Create a new environment with Python 3.9
micromamba create --name profiling_env python=3.9 -c conda-forge

# Activate the environment
micromamba activate profiling_env

# Install the necessary packages
micromamba install -c conda-forge ydata-profiling pandas jupyterlab

# Verify the installation
python -c "import pandas; print(pandas.__version__)"
python -c "import ydata_profiling; print(ydata_profiling.__version__)"

I'm experiencing an issue with Micromamba and Pip showing different versions of the ydata-profiling package, and it's causing some confusion in my environment.

Here’s what’s happening:

When I run:

pip show ydata-profiling

It shows: Version: 0.0.dev0

But when I check the version with Micromamba:

micromamba list | findstr ydata-profiling

It shows:

ydata-profiling 4.11.0

If I remove the Pip version using:

pip uninstall ydata-profiling The application stops working.

When I try reinstalling it through Micromamba:

micromamba install -c conda-forge ydata-profiling

It still shows the wrong version through Pip as 0.0.dev0.

I'm not sure what’s causing this issue, and I’m wondering if it’s a bug or if there's a deeper issue with how Pip and Micromamba manage their dependencies. Does anyone know why this might be happening, or how to ensure both tools report the same version correctly?

Steps I’ve Tried:

Any help would be appreciated!


Solution

  • In short

    1. Conda and pip read versions from different places
    2. whoever packaged this messed up, creating an inconsistency in the reported version

    This is therefore no bug from conda and/or pip.

    A bit more detail to see this for yourself:

    You can see the relevant file in <mamba install dir/base location>\pkgs\ydata-profiling-4.11.0-pyhd8ed1ab_0\info\index.json and the record for the current env is stored in %CONDA_PREFIX%\conda-meta\ydata-profiling-4.11.0-pyhd8ed1ab_0.json, both of which correctly state the version.

    On the other hand

    %CONDA_PREFIX%\Lib\site-packages has ydata_profiling-0.0.dev0.dist-info and the version 0.0.dev0 is also in %CONDA_PREFIX%\Lib\site-packages\ydata_profiling-0.0.dev0.dist-info\METADATA and %CONDA_PREFIX%\Lib\site-packages\ydata_profiling-0.0.dev0.dist-info\METADATA

    Furthermore, your code

    python -c "import ydata_profiling; print(ydata_profiling.__version__)"
    

    also produces the incorrect version, as it is in %CONDA_PREFIX%\Lib\site-packages\ydata_profiling\version.py

    The correct place to report this would be the issue page of the package`s feedstock on conda-forge, here