Kaggle / Kaggle/kaggle-environments

miniconda3 fails to pip-compile kaggle_environments==1.13.0

Open
#239 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
452
Forks
190
Avg merge
31m
Merged PRs (30d)
2

Description

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
- https://pypi.org/project/pettingzoo/1.12.0/
- https://pypi.org/project/pickle5/0.0.12/

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.
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.