web-dev-qa-db-fra.com

Utilisation de Pip pour installer des packages dans Anaconda Environment

conda 4.2.13 MacOSX 10.12.1

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

Activez l'environnement dans lequel vous voulez installer le programme, puis installez un programme ...

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

conda create -n shrink_venv

Activez le:

source activate shrink_venv

Je peux alors voir dans le terminal que je travaille dans mon env (shrink_venv). Le problème est à venir, lorsque j'essaye d'installer un paquet en utilisant 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 l'ensemble du système. Il semble donc que l’environnement ne fonctionne pas correctement, certainement pas comme il est dit dans la documentation. Est-ce que je fais quelque chose de mal ici?

Juste une note, je sais que vous pouvez utiliser conda install pour les paquets, mais j’ai eu un problème avec Pillow de anaconda, je voulais donc l’obtenir de pip, et depuis la documentation, 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 trouvé, c’est que le conda env ne joue pas bien avec le PYTHONPATH. Le système semble toujours rechercher dans les emplacements PYTHONPATH même lorsque vous utilisez un environnement Conda. Maintenant, j’exécute toujours unset PYTHONPATH lors de l’utilisation d’un environnement conda, et cela fonctionne beaucoup mieux. Je suis sur un mac.

55
jeffery_the_wind

Pour d'autres qui rencontrent cette situation, j'ai trouvé que c'était la solution la plus simple: 

  1. Exécutez conda create -n venv_name et source activate venv_name, où venv_name est le nom de votre environnement virtuel. 

  2. Exécutez conda install pip. Cela installera pip dans votre répertoire venv. 

  3. Recherchez votre répertoire anaconda et recherchez le dossier venv actuel. Cela 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 utilisant le pip de cet environnement virtuel! 

54
Windmill

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

pip install package-name

Il s’installera automatiquement dans l’environnement anaconda sans avoir à utiliser

conda install package-name

Étant donné que certains paquets conda peuvent ne pas prendre en charge les heures supplémentaires, il est nécessaire d’installer à l’aide de pip et c’est une façon de le faire.

Si vous avez installé pip dans anaconda, vous pouvez exécuter les opérations suivantes dans jupyter notebook ou dans votre shell python associé à anaconda.

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

Vérifiez votre version de pip avec pip.__version__. S'il s'agit de la version 10.x.x ou supérieure, installez votre paquet python avec cette ligne de code.

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

Dans votre bloc-notes jupyter, vous pouvez installer les paquets Python via pip dans une cellule de cette façon;

!pip install package-name

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

!python3.6 -m pip install package-name
40
sambeth

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

conda create -n env_name pip

et n'a pas non plus installer pip dans l'environnement

source activate env_name
conda install pip

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

Comme vous pouvez le voir dans ce numéro , même si vous avez suivi l’une des procédures mentionnées ci-dessus, le comportement de pip dans l’environnement de Conda est toujours un peu indéfini.

Pour garantir l'utilisation du pip installé dans l'environnement conda sans avoir à taper le /home/username/anaconda/envs/env_name/bin/pip long, 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 ça te sera utile.

5
Allen Ye

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

Sudo $(which pip) install <instert_package_name>

a travaillé pour moi.

Explainaton

Il me semble, en tout cas, que which pip est très fiable pour trouver le chemin pip conda env où vous vous trouvez. Cependant, lorsque vous utilisez Sudo, cela semble rediriger les chemins ou le casser d'une autre manière.

L'utilisation de $(which pip) l'exécute indépendamment de la Sudo ou de l'une quelconque des commandes et s'apparente à l'exécution de /home/<username>/(mini)conda(3)/envs/<env_name>/pip sous Linux. En effet, $() est exécuté séparément et la sortie de texte est ajoutée à la commande externe.

3
josh

Je rencontrais 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 env est créé dans le dossier C et que le dossier bin n’a pas été créé, Je n'en ai aucune idée mais ça n'a pas marché).

Selon anaconda pip est déjà installé (qui se trouve à l'aide de la commande "conda list" sur anaconda Prompt), mais les packages pip ne sont pas installés. Voici ce que j'ai fait, j'ai installé pip à nouveau, puis pip a installé le package.

conda install pip
pip install see

see est un package non conforme.

2
Abhijeet sinha

J'ai résolu ce problème de la manière suivante:

Si vous avez un pip non-conda comme pip par défaut, alors que conda python est votre _ par défaut python (comme ci-dessous)

_>which -a pip
/home/<user>/.local/bin/pip   
/home/<user>/.conda/envs/newenv/bin/pip
/usr/bin/pip

>which -a python
/home/<user>/.conda/envs/newenv/bin/python
/usr/bin/python
_

Ensuite, au lieu d'appeler simplement _pip install <package>_, vous pouvez utiliser l'indicateur de module _-m_ avec python pour qu'il utilise l'anaconda python pour l'installation.

_python -m pip install <package>
_

Ceci installe le paquet dans le répertoire de la bibliothèque anaconda plutôt que dans le répertoire de la bibliothèque associé au pip (non-anaconda)

1
alex_danielssen

si vous utilisez Windows OS, ouvrez Anaconda Prompt et saisissez activate yourenvname

Et si vous utilisez Mac ou Linux, ouvrez Terminal et tapez source activate yourenvname

yourenvname voici l'environnement dans lequel vous souhaitez installer le paquet pip

après avoir tapé la commande ci-dessus, vous devez voir que le nom de votre environnement est passé de base à votre environnement typé yourenvname dans la sortie de la console (ce qui signifie que vous êtes maintenant dans le contexte de votre environnement souhaité)

Ensuite, tout ce que vous devez faire est la commande pip install normale, par exemple pip install yourpackage.

Ce faisant, le paquet pip sera installé dans votre environnement Conda.

0
Code_Worm

Si vousSEULEMENTvoulez avoir une installation de conda. Supprimez simplement tous les autres chemins python de votre variable PATH.

Ne laissant que:

C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin

Cela vous permet simplement d'utiliser pip install * et il s'installera directement dans votre installation de conda.

0
moto

activate shrink_venv fera aussi bien. J'ai essayé de créer un nouvel environnement et mon installation de conda ne me permet pas d'utiliser le code source au début.

0
Elisavet Fakou

Toutes les réponses ci-dessus sont principalement basées sur l'utilisation de virtualenv. Je viens d'avoir une nouvelle installation de anaconda3 et je n'ai pas de virtualenv installé. J'ai donc trouvé une meilleure alternative sans me soucier de la création de virtualenv.

Si vous avez plusieurs versions de pip et python installées sous Linux, lancez d'abord la commande ci-dessous pour répertorier tous les chemins de pip installés.

où est pip

Vous obtiendrez quelque chose comme ceci en sortie.

pip:/usr/bin/pip /home/prabhakar/anaconda3/bin/pip /usr/share/man/man1/pip.1.gz

Copiez le chemin du pip que vous souhaitez utiliser pour installer votre paquet et collez-le après que Sudo remplace /home/prabhakar/anaconda3/bin/pip dans la commande ci-dessous.

Sudo /home/prabhakar/anaconda3/bin/pip install <package-name>

Cela a plutôt bien fonctionné pour moi. Si vous avez un problème d'installation, veuillez commenter.

0
Prabhakar Prasad