Skip to content

miniconda3 fails to pip-compile kaggle_environments==1.13.0 #239

@JamesMcGuigan

Description

@JamesMcGuigan

Running pip-compile on kaggle_environments==1.13.0 works fine using the regular version of python pip.

However pip-compile using miniconda (Ubuntu 22.04 LTS) fails to resolve nested dependencies pettingzoo==1.12.0 and pickle5==0.0.12

Steps to Reproduce

requirements.in

kaggle_environments==1.13.0

BROKEN: Using miniconda pip

lsb_release -a

~/.miniconda3/bin/python3 --version   # Python 3.10.11
~/.miniconda3/bin/python3 -m venv venv
source venv/bin/activate
pip-compile -v --upgrade
...
Finding secondary dependencies:
  kaggle-environments==1.13.0 requires Flask>=1.1.2, gym==0.21.0, jsonschema>=3.0.1, numpy>=1.19.5, PettingZoo==1.12.0, pickle5==0.0.12, requests>=2.25.1, stable-baselines3==1.7.0, vec-noise>=1.1.4
  jsonschema==4.18.4        requires attrs>=22.2.0, jsonschema-specifications>=2023.03.6, referencing>=0.28.4, rpds-py>=0.7.1

  pettingzoo==1.12.0 not in cache, need to check index
  ERROR: Could not find a version that satisfies the requirement PettingZoo==1.12.0 (from kaggle_environments==1.13.0->-r requirements.in (line 11)) (from versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.1.10, 0.1.11, 0.1.12, 0.1.13, 0.1.14, 1.0.0, 1.0.1, 1.1.0, 1.2.0, 1.2.1, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.14.0, 1.15.0, 1.16.0, 1.17.0, 1.18.1, 1.19.0, 1.20.1, 1.21.0, 1.22.0, 1.22.1, 1.22.2, 1.22.3, 1.22.4, 1.23.0, 1.23.1)

  pickle5==0.0.12 not in cache, need to check index
  ERROR: Could not find a version that satisfies the requirement pickle5==0.0.12 (from kaggle_environments==1.13.0->-r requirements.in (line 1)) (from versions: 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7, 0.0.8, 0.0.9, 0.0.10, 0.0.11)

These are missing from the miniconda3 repos, but are visible in pypi

WORKAROUND: Use python pip

/usr/bin/python3 --version    # Python 3.10.6
/usr/bin/python3 -m venv venv
source venv/bin/activate
pip-compile -v --upgrade
pip install -r requirements.txt

NOTE: miniconda is required to get tensorflow running on Apple M1


Poetry describes the dependency conflict as requiring Python v3.7

# pyproject.toml == kaggle-environments = "1.13.0"
poetry update
Updating dependencies
Resolving dependencies... (0.9s)

The current project's Python requirement (>=3.10,<4.0) is not compatible with some of the required packages Python requirement:
  - pickle5 requires Python >=3.5, <3.8, so it will not be satisfied for Python >=3.10,<4.0

Because kaggle-environments (1.13.0) depends on pickle5 (0.0.12) which requires Python >=3.5, <3.8, kaggle-environments is forbidden.
So, because connectx depends on kaggle-environments (1.13.0), version solving failed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions