316 votes

Utilisation de Pip pour installer des paquets dans l'environnement Anaconda

Conda 4.2.13 MacOSX 10.12.1

J'essaie d'installer des paquets à partir de pip vers un nouvel environnement (virtuel) créé en utilisant anaconda. Dans les documents d'Anaconda il dit que c'est parfaitement bien. Cela se fait de la même manière que pour virtualenv.

Activez l'environnement où vous voulez mettre le programme, puis pip install a program...

J'ai créé un environnement vide à Ananconda comme ceci :

conda create -n shrink_venv

Activez-la :

source activate shrink_venv

Je peux alors voir dans le terminal que je travaille dans mon env. (shrink_venv) . Un problème se pose lorsque j'essaie d'installer un paquet à l'aide de pip :

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

Je peux donc voir qu'il pense que l'exigence est satisfaite par le paquet de l'ensemble du système. Il semble donc que l'environnement ne fonctionne pas correctement, et certainement pas comme indiqué dans la documentation. Est-ce que je fais quelque chose de mal ici ?

Juste une remarque, je sais que vous pouvez utiliser conda install pour les paquets, mais j'ai eu un problème avec Pillow d'anaconda, donc je voulais l'obtenir de pip et puisque les docteurs disent que c'est bien.

Sortie de which -a pip :

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

** UPDATE ** Je vois que c'est un problème assez commun. Ce que j'ai découvert, c'est que l'environnement Conda ne joue pas bien avec le PYTHONPATH. Le système semble toujours chercher dans les emplacements de PYTHONPATH même lorsque vous utilisez un environnement conda. Maintenant, j'exécute toujours unset PYTHONPATH en utilisant un environnement conda, et cela fonctionne beaucoup mieux. Je suis sur un Mac.

23 votes

Avez-vous essayé un conda install pip ?

5 votes

Pouvez-vous ajouter la sortie de which -a pip à votre question, s'il vous plaît ?

0 votes

@cel vient d'ajouter cette sortie, oui je vois que j'ai 2 versions différentes de pip installées.

430voto

Windmill Points 1432

Pour les autres qui se trouvent dans cette situation, j'ai trouvé que c'était la solution la plus simple :

  1. Exécuter conda create -n venv_name y conda activate venv_name , donde venv_name est le nom de votre environnement virtuel.

  2. Exécuter conda install pip . Cela va installer pip dans votre répertoire venv.

  3. Trouvez votre répertoire anaconda, et trouvez le dossier venv actuel. Il devrait être quelque part comme /anaconda/envs/venv_name/ .

  4. Installez les nouveaux paquets en faisant /anaconda/envs/venv_name/bin/pip install package_name .

Cela devrait maintenant installer avec succès les paquets en utilisant le pip de cet environnement virtuel !

10 votes

A le chemin pour le bin Le dossier a été modifié ? Je ne le vois plus dans le venv_name dossier ?

0 votes

Je viens d'essayer de créer un nouveau venv, il semble que la bin est toujours au même endroit.

3 votes

Je n'avais pas le dossier 'bin', donc les étapes ci-dessus m'ont aidé. Une chose que je voudrais ajouter est de lancer 'which pip' pour déterminer quel 'pip' installe réellement les paquets et 'pip freeze' donne la liste des paquets installés dans l'environnement.

107voto

sambeth Points 410

Tout ce que vous avez à faire est d'ouvrir Anaconda Prompt et de taper

pip install package-name

Il sera automatiquement installé dans l'environnement anaconda sans avoir à utiliser

conda install package-name

Étant donné que certains paquets conda peuvent manquer de support pour les heures supplémentaires, il est nécessaire de les installer à l'aide de pip et voici une façon de le faire

Si vous avez installé pip dans anaconda, vous pouvez exécuter ce qui suit dans jupyter notebook ou dans votre shell python qui est lié à anaconda

pip.main(['install', 'package-name'])

Vérifiez votre version de pip avec pip.__version__ . Si c'est la version 10.x.x ou plus, puis installez votre paquetage python avec cette ligne de code

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])

Dans votre notebook jupyter, vous pouvez installer des paquets python via pip dans une cellule de cette manière ;

!pip install package-name

ou vous pouvez utiliser votre version de python associée à anaconda

!python3.6 -m pip install package-name

13 votes

Comment "ouvrir l'invite Anaconda" ?

4 votes

Sous Windows, vous devez rechercher "anaconda prompt" à l'aide de l'icône de recherche ou de l'entrée trouvée dans la barre des tâches, puis ouvrir.

1 votes

@sambeth sur mac ?

11voto

Allen Ye Points 51

Si vous n'avez pas ajouté pip lors de la création de l'environnement conda

conda create -n env_name pip

et n'a pas non plus installé pip dans l'environnement

source activate env_name
conda install pip

alors le seul pip que vous avez est le pip système, qui installera les paquets globalement.

Bus comme vous pouvez le voir dans cette numéro Même si vous avez effectué l'une ou l'autre des procédures mentionnées ci-dessus, le comportement de pip dans l'environnement Conda est toujours indéfini.

Pour assurer l'utilisation du pip installé dans l'environnement conda sans avoir à taper la longue /home/username/anaconda/envs/env_name/bin/pip j'ai écrit une fonction shell :

# Using pip to install packages inside conda environments.
cpip() {
    ERROR_MSG="Not in a conda environment."
    ERROR_MSG="$ERROR_MSG\nUse \`source activate ENV\`"
    ERROR_MSG="$ERROR_MSG to enter a conda environment."

    [ -z "$CONDA_DEFAULT_ENV" ] && echo "$ERROR_MSG" && return 1

    ERROR_MSG='Pip not installed in current conda environment.'
    ERROR_MSG="$ERROR_MSG\nUse \`conda install pip\`"
    ERROR_MSG="$ERROR_MSG to install pip in current conda environment."

    [ -e "$CONDA_PREFIX/bin/pip" ] || (echo "$ERROR_MSG" && return 2)

    PIP="$CONDA_PREFIX/bin/pip"
    "$PIP" "$@"
}

J'espère que cela vous sera utile.

0 votes

"Si vous n'avez pas ajouté pip lors de la création de l'environnement conda, et n'avez pas non plus installé pip à l'intérieur de l'environnement, alors le seul pip que vous avez est le pip système, qui installera les paquets de manière globale." Pip peut corrompre votre environnement conda de base si vous le laissez installer n'importe quoi de manière globale. Ne le faites pas. Voir anaconda.com/blog/using-pip-in-a-conda-environment pour plus d'informations.

4voto

josh Points 1712

Pour ceux qui souhaitent installer un petit nombre de paquets dans conda avec pip puis en utilisant,

sudo $(which pip) install <instert_package_name>

a fonctionné pour moi.

Explication

Il semble, pour moi en tout cas, que which pip est très fiable pour trouver le chemin de conda env pip à l'endroit où vous êtes. Cependant, lorsque vous utilisez sudo il semble que cela redirige les chemins ou que cela ne fonctionne pas.

Utilisation de la $(which pip) l'exécute indépendamment de la sudo ou l'une des commandes, ce qui revient à exécuter la commande /home/<username>/(mini)conda(3)/envs/<env_name>/pip dans Linux. Ceci est dû au fait que $() est exécutée séparément et la sortie texte est ajoutée à la commande externe.

3voto

Abhijeet sinha Points 21

J'ai rencontré un problème lors de l'installation d'un paquet non conda sur anaconda, j'ai suivi la réponse la plus appréciée ici et cela n'a pas bien fonctionné (peut-être parce que mon anaconda est dans le répertoire F et que l'env créé était dans C et que le dossier bin n'a pas été créé, je n'en ai aucune idée mais cela n'a pas fonctionné).

Selon anaconda, pip est déjà installé ( ce qui est trouvé en utilisant la commande " conda list " à l'invite d'anaconda), mais les paquets pip ne s'installaient pas alors voici ce que j'ai fait, j'ai réinstallé pip et ensuite pip a installé le paquet.

conda install pip
pip install see

see est un paquet non-conda.

0 votes

N'utilisez pas pip dans un environnement conda, à moins que vous n'y mettiez fin, c'est-à-dire que vous n'utiliserez plus que pip dans cet environnement, et n'installerez plus jamais de paquets conda dans cet environnement. Voir ce billet pour plus d'informations sur les raisons de ce choix : anaconda.com/blog/using-pip-in-a-conda-environment

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X