web-dev-qa-db-fra.com

Comment puis-je supprimer un canal d'URL d'Anaconda?

Récemment, j'ai eu besoin d'installer PyPdf2 sur l'un de mes programmes en utilisant Anaconda. Malheureusement, j'ai échoué, mais les URL qui ont été ajoutées à l'environnement Anaconda interdisent les mises à jour de toutes les bibliothèques Conda . Chaque fois que j'ai essayé de mettre à jour anaconda, les informations suivantes sont fournies 

conda update conda
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata ..........Error: Invalid index file: https://pypi.python.org/pypi/PyPDF2/1.26.0/win-64/repodata.json: No JSON object could be decoded

J'ai tapé la commande conda info pour voir la cause de l'erreur, j'ai trouvé beaucoup d'URL pointant vers PyPdf2!

Simplement, je veux supprimer toutes ces URL de l'URL du canal de anaconda. Comment puis-je le faire? Peu importe manuellement ou automatiquement.

Remarque: j'ai désinstallé Anaconda et l'ai réinstallé, mais pas de chance!

C:\WINDOWS\system32>conda info
Using Anaconda Cloud api site https://api.anaconda.org
Current conda install:

             platform : win-64
        conda version : 4.1.6
    conda-env version : 2.5.1
  conda-build version : 1.21.3
       python version : 2.7.12.final.0
     requests version : 2.10.0
     root environment : C:\Anaconda2  (writable)
  default environment : C:\Anaconda2
     envs directories : C:\Anaconda2\envs
        package cache : C:\Anaconda2\pkgs
         channel URLs : https://pypi.python.org/pypi/PyPDF2/1.26.0/win-64/
                        https://pypi.python.org/pypi/PyPDF2/1.26.0/noarch/
                        https://conda.anaconda.org/C:\Python27\Lib\site-packages\PyPDF2/win-64/
                        https://conda.anaconda.org/C:\Python27\Lib\site-packages\PyPDF2/noarch/
                        https://conda.anaconda.org/X:\Downloads\Compressed\PyPDF2-master\/win-64/
                        https://conda.anaconda.org/X:\Downloads\Compressed\PyPDF2-master\/noarch/
                        https://github.com/mstamy2/PyPDF2/zipball/master/win-64/
                        https://github.com/mstamy2/PyPDF2/zipball/master/noarch/
                        https://pypi.python.org/pypi/PyPDF2/win-64/
                        https://pypi.python.org/pypi/PyPDF2/noarch/
                        https://pythonhosted.org/PyPDF2/win-64/
                        https://pythonhosted.org/PyPDF2/noarch/
                        https://github.com/mstamy2/PyPDF2/win-64/
                        https://github.com/mstamy2/PyPDF2/noarch/
                        https://repo.continuum.io/pkgs/free/win-64/
                        https://repo.continuum.io/pkgs/free/noarch/
                        https://repo.continuum.io/pkgs/pro/win-64/
                        https://repo.continuum.io/pkgs/pro/noarch/
          config file : C:\Users\Dr. Mohammad Elnesr\.condarc
         offline mode : False
    is foreign system : False
19
Mohammad ElNesr

Développer sur le réponse de Mohammed.

Toutes les URL que vous voyez dans votre conda info sont les URL de votre canal. C’est là que conda cherchera des paquets. Comme indiqué par @cel, ces canaux se trouvent dans le fichier .condarc de votre répertoire personnel. 

Vous pouvez interagir avec les canaux et d'autres données de votre fichier .condarc à l'aide de la commande conda config. Par exemple, supposons que votre fichier .condarc répertorie les canaux suivants:

channels:
  - https://github.com/mstamy2/PyPDF2/  
  - defaults

Alors si nous faisons conda config --get channels nous verrons retourné:

--add channels 'defaults'   # lowest priority
--add channels 'https://github.com/mstamy2/PyPDF2/'   # highest priority

Si nous voulons ensuite supprimer le canal github, nous ferions conda config --remove channels 'https://github.com/mstamy2/PyPDF2/'. Vous pouvez également ajouter des canaux à l'aide de la commande --add. Par exemple, nous pourrions rajouter ce canal avec conda config --add channels 'https://github.com/mstamy2/PyPDF2/'.

Dans ce cas, comme il y avait plusieurs canaux à supprimer, il était probablement plus rapide de modifier simplement le .condarc mais il est utile de savoir comment le faire via conda config.

20
Paul

Heureusement, j'ai trouvé la réponse (merci à @cel également).

J'ai navigué vers C:\Users\{MyUserName}\ Ensuite, j'ai trouvé un fichier sans nom mais ayant une extension étrange (.condarc) Je l'ai ouvert avec Notepad ++, j'ai trouvé les fichiers comme suit>

 enter image description here

Ensuite, j'ai supprimé toutes les lignes sauf la dernière, sauvegardé le fichier, puis exécuté la commande conda update conda, et cela fonctionne sans erreur.

15
Mohammad ElNesr

J'espère que ma réponse aidera quelqu'un d'autre à utiliser le terminal Mac OS. J'ai accidentellement ajouté "new_channel" à ma liste de chaînes et je ne savais pas comment le supprimer. Je ne pouvais pas non plus trouver le fichier .condarc (peut-être que quelqu'un m'éclairerait s'il vous plaît), mais j'ai pu utiliser le terminal pour le compléter.

Il y a deux types de "canaux" dans Conda. L'un est les canaux et l'autre, les URL des canaux. Si vous essayez de supprimer l'URL du canal, vous ne pouvez pas le supprimer en utilisant: 

conda config --remove channels

A l'origine, j'ai tapé conda info et j'ai vu ce qui suit:

uRL de la chaîne: 

         https://repo.anaconda.com/pkgs/pro/osx-64
         https://repo.anaconda.com/pkgs/pro/noarch
         https://conda.anaconda.org/new_channel/osx-64
         https://conda.anaconda.org/new_channel/noarch

Alors je pensais, ok, laissez-moi simplement taper ce qui suit.

conda config --remove channels https://conda.anaconda.org/new_channel/osx-64

CELA NE FONCTIONNE PAS.

Ce que vous devez faire est de taper ce qui suit:

conda config --show channels

Vous verrez vos chaînes:

canaux:

  • défauts

  • new_channel

Maintenant, vous savez comment s'appelle votre chaîne. Cela s'appelle new_channel (peut sembler évident, mais parfois pas pour nous les débutants).

Donc vous tapez:

conda config --remove channels new_channel

Et boum, toutes les URL new_channel ont disparu.

Dans le cas d'OP, sa chaîne s'appelait probablement PyPdf2

Donc, le code correct à taper dans Terminal est:

conda config --remove channels PyPdf2

ENCORE, NE PAS ESSAYER DE SUPPRIMER L'URL DU CANAL. VÉRIFIEZ QUE VOUS SUPPRIMEZ LE CANAL.

2
Lionel Yu