Closed jaimergp closed 4 months ago
This env.yml reproduces the current problem:
channels:
- conda-forge
dependencies:
- python=3.10
- tensorflow=0.14
- pyyaml
- pip
- pip:
- tensorflow-addons==0.14.0
# note the .0 here -------^; we need to be exact because 0.14 is not a real version
- tf-models-official
This calculates:
conda will install:
- cython
- pillow
- gin-config
- google-api-python-client[version='>=1.6.7']
- immutabledict
- kaggle[version='>=1.3.9']
- matplotlib-base
- numpy[version='>=1.20']
- oauth2client
- pandas[version='>=0.22.0']
- psutil[version='>=5.4.3']
- py-cpuinfo[version='>=3.3.0']
- pycocotools
- pyyaml[version='>=6.0.0']
- sacrebleu
- scipy[version='>=0.19.1']
- sentencepiece
- seqeval
- six
- tensorflow-datasets
- tensorflow-hub[version='>=0.6.0']
- tensorflow[version='>=2.14.0,<2.15.dev0']
- tf-slim[version='>=1.1.0']
pip will install:
- tensorflow-addons==0.14.0
- opencv-python-headless
- tensorflow-model-optimization>=0.4.1
- tensorflow-text>=2.14.0,<2.15.dev0
- tf-models-official==2.14.0
But tf-slim >=1.1.0
doesn't have matches in conda-forge.
This is being done as of #12
Grayskull's logic to determine whether a package is available on conda or not is based purely on the existence of the package name in anaconda.org/{channel}.
There's no concept of index, multiple channels or spec compatibility. To ensure that we try to install conda packages that indeed exists, we need to check whether the specs calculated by grayskull result in any records being found in the computed index (e.g. a recent version required by some pip package might not be available on conda-forge yet, in that case we use pip's).