web-dev-qa-db-fra.com

ResolvePackageNotFound: Créer un env en utilisant un fichier conda et yml sur MacOS

Je veux créer un environnement virtuel à l'aide de fichiers conda et yml.

Commander:

conda env create -n ex3 -f env.yml

Tapez ENTER, il donne le message suivant:

ResolvePackageNotFound:

 - gst-plugins-base==1.8.0=0
 - dbus==1.10.20=0
 - opencv3==3.2.0=np111py35_0
 - qt==5.6.2=5
 - libxcb==1.12=1
 - libgcc==5.2.0=0
 - gstreamer==1.8.0=0

Cependant, je les ai sur mon Mac. Mon MacOS: High Sierra 10.13.3

Mon fichier env.yml ressemble à ceci:

name: ex3
channels:
- menpo
- defaults
dependencies:
- cairo=1.14.8=0
- certifi=2016.2.28=py35_0
- cycler=0.10.0=py35_0
- dbus=1.10.20=0
- expat=2.1.0=0
- fontconfig=2.12.1=3
- freetype=2.5.5=2
- glib=2.50.2=1
- gst-plugins-base=1.8.0=0
- gstreamer=1.8.0=0
- harfbuzz=0.9.39=2
- hdf5=1.8.17=2
- icu=54.1=0
- jbig=2.1=0
- jpeg=9b=0
- libffi=3.2.1=1
- libgcc=5.2.0=0
- libgfortran=3.0.0=1
- libiconv=1.14=0
- libpng=1.6.30=1
- libtiff=4.0.6=3
- libxcb=1.12=1
- libxml2=2.9.4=0
- matplotlib=2.0.2=np111py35_0
- mkl=2017.0.3=0
- numpy=1.11.3=py35_0
- openssl=1.0.2l=0
- pandas=0.20.1=np111py35_0
- patsy=0.4.1=py35_0
- pcre=8.39=1
- pip=9.0.1=py35_1
- pixman=0.34.0=0
- pyparsing=2.2.0=py35_0
- pyqt=5.6.0=py35_2
- python=3.5.4=0
- python-dateutil=2.6.1=py35_0
- pytz=2017.2=py35_0
- qt=5.6.2=5
- readline=6.2=2
- scipy=0.19.0=np111py35_0
- seaborn=0.8=py35_0
- setuptools=36.4.0=py35_1
- sip=4.18=py35_0
- six=1.10.0=py35_0
- sqlite=3.13.0=0
- statsmodels=0.8.0=np111py35_0
- tk=8.5.18=0
- wheel=0.29.0=py35_0
- xz=5.2.3=0
- zlib=1.2.11=0
- opencv3=3.2.0=np111py35_0
- pip:
  - bleach==1.5.0
  - enum34==1.1.6
  - html5lib==0.9999999
  - markdown==2.6.11
  - protobuf==3.5.1
  - tensorflow==1.4.1
  - tensorflow-tensorboard==0.4.0
  - werkzeug==0.14.1

Comment résoudre ce problème?

Eh bien .... Le débordement de pile m'invite à dire plus de détails, mais je pense que je décris les choses clairement, c'est triste, le débordement de pile ne prend pas en charge le téléchargement de pièces jointes ....

19
waschbaerYOYO

J'ai eu le même problème et j'ai trouvé votre question sur Google.

ResolvePackageNotFound erreur décrit tous les packages pas encore installés, mais requis.

Pour résoudre le problème, déplacez-les dans la section pip:

name: ex3
channels:
- menpo
- defaults
dependencies:
  - cairo=1.14.8=0
  - ***
  - another dependencies, except not found ones
  - pip:
    - gst-plugins-base==1.8.0                
    - bleach==1.5.0
    - enum34==1.1.6
    - html5lib==0.9999999
    - markdown==2.6.11
    - protobuf==3.5.1
    - tensorflow==1.4.1
    - tensorflow-tensorboard==0.4.0
    - werkzeug==0.14.1
    *** added ***
    - gst-plugins-base==1.8.0
    - dbus==1.10.20
    - opencv3==3.2.0
    - qt==5.6.2
    - libxcb==1.12
    - libgcc==5.2.0
    - gstreamer==1.8.0
38
Northern Poet

J'ai eu le même problème et j'ai trouvé un problème GitHub lié à cela. Dans les commentaires, @kalefranz a publié une solution idéale en utilisant le --no-builds drapeau avec exportation conda env.

conda env export --no-builds > environment.yml

Cependant, même en supprimant les numéros de build, certains packages peuvent toujours avoir un numéro de version différent sous différents systèmes d'exploitation. La meilleure façon, je pense, est de créer un fichier yml env différent pour différents systèmes d'exploitation.

J'espère que cela t'aides.

1
Shixiang Wang

Il peut y avoir une autre raison à l'erreur " ResolvePackageNotFound " - la version des packages dont vous avez besoin peut se trouver dans une ancienne version du référentiel qui n'est pas recherché par défaut.

Les différents chemins d'accès aux emplacements dans les référentiels Anaconda peuvent être trouvés sur:
https://repo.continuum.io/pkgs/

Mon fichier yml [NW_BI.yml] est le suivant:

name: NW_BI
channels:
- 'https://repo.continuum.io/pkgs/free' # Remove this line and it fails!!!
- conda-forge
- defaults
dependencies:
- python=2.7.10
- pandas=0.16.2
- pyodbc=3.0.10

Créer en utilisant:

conda env create -f 'path to file'\NW_BI.yml

Je voulais recréer un ancien environnement !!!!

Remarque en utilisant:
Anaconda3 2019.10
Windows10

0
Stuart Nash

Si vous regardez cela et vous sentez trop de corvée pour changer la version de Conda packge=ver=py.* au style pip package==ver, J'ai écrit ce petit script qui supprime le =py.* pièce de style Conda.

Notez que le code ci-dessous fonctionne en supposant que vous avez déjà changé package=ver à package==ver.

#!/bin/bash

COUNT=0
find_pip=0

while IFS= read -r line; do
    COUNT=$(( $COUNT + 1 ))
#    echo "$COUNT"
#    echo "read it"
    if echo ${line} | grep -q -- "- pip:" ; then
#        echo "find it"
        find_pip=1
        indent=`awk -F- '{print length($1)}' <<< "$line"`
        pip_indent=$(( $indent + 2 ))
#        echo $indent
#    echo $pip_indent
    fi

    line_indent=`awk -F- '{print length($1)}' <<< "$line"`

    if [[ ${find_pip} ]] && [[ ${pip_indent} -eq ${line_indent} ]]; then
#        echo "$line"
        new_line=`echo ${line} | cut -d'=' -f-3`
        new_line="    $new_line"
#        echo "${new_line}"
        sed -e "${COUNT}s/.*/${new_line}/" -i '' $1
    fi
done < "$1"
0
Xinyue Wang