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

178

conda 4.2.13 MacOSX 10.12.1

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

Activez l'environnement dans lequel vous souhaitez placer le programme, puis pip installez un programme ...

J'ai créé un environnement vide dans 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). Un problème se pose lorsque j'essaye d'installer un package 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 à partir de 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 installpour les paquets, mais j'ai eu un problème avec Pillow d'Anaconda, donc je voulais l'obtenir à partir de pip, et puisque la documentation dit que c'est bien.

Sortie de which -a pip:

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

** MISE À JOUR ** Je vois que c'est un problème assez courant. Ce que j'ai trouvé, c'est que le conda env ne joue pas bien avec le PYTHONPATH. Le système semble toujours chercher dans les emplacements PYTHONPATH même lorsque vous utilisez un environnement conda. Maintenant, je cours toujours unset PYTHONPATHlorsque j'utilise un environnement conda, et cela fonctionne beaucoup mieux. Je suis sur un mac.

jeffery_the_wind
la source
9
Avez-vous essayé un conda install pip?
languitar
4
pouvez-vous ajouter la sortie de which -a pipà votre question s'il vous plaît?
cel
1
Avez-vous un PYTHONPATHjeu de variables d'environnement?
darthbith
1
eu un problème similaire. Utiliser explicitement le pip qui fait partie d'Anaconda semblait fonctionner pour moi.
Arsene Lupin
1
est-il vraiment sûr d'installer des choses en utilisant pip et conda? Je pensais que vous pourriez avoir des problèmes, comme ne pas savoir quelle version corriger la désinstallation ...
Charlie Parker

Réponses:

203

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

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

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

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

  4. Installez de nouveaux packages en faisant /anaconda/envs/venv_name/bin/pip install package_name.

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

Moulin à vent
la source
2
Le chemin du bindossier a-t-il changé? Je ne le vois plus dans le venv_namedossier?
Jack
Je viens d'essayer de créer un nouveau venv, on dirait que le binest toujours au même endroit.
Moulin à vent
2
N'avait pas de dossier «bin», donc les étapes ci-dessus ont aidé Une chose que j'ajouterais est d'exécuter `` which pip '' aide à déterminer quel `` pip '' installe réellement les packages et `` pip freeze '' donne la liste des packages installés dans l'environnement
Mykola
2
J'ai une situation où même si ma source est activée, mes installations ne se produisent pas dans l'environnement. Ils sont installés à l'emplacement python par défaut.
Saisumanth Gopisetty
4
Cette réponse est en grande partie: Run pipde votre env Conda (que ce soit l'environnement ou non), et installez le package que vous souhaitez en utilisant l' pipexécutable dans le dossier Conda (mon cas: AppData\Local\Continuum\anaconda3\Scripts)
Manuel Martinez
80

Tout ce que vous avez à faire est d'ouvrir l'invite Anaconda 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 des packages conda peuvent manquer de support au fil des heures, il est nécessaire de l'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 ce qui suit dans jupyter notebook ou dans votre shell python lié à anaconda

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

Vérifiez votre version de pip avec pip.__version__. S'il s'agit d'une version 10.x.xou supérieure, installez votre package 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 packages python via pip dans une cellule de cette façon;

!pip install package-name

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

!python3.6 -m pip install package-name
sambeth
la source
6
comment "ouvrir l'invite Anaconda"
Thomas Browne
3
Sur Windows, vous devez rechercher 'anaconda prompt' en utilisant l'icône de recherche ou l'entrée trouvée dans la barre des tâches et ouvrir
sambeth
@sambeth sur mac?
Parthapratim Neog
1
Je pense que la clé est d'exécuter le pip de votre anaconda, qui se trouve sous votre environnement global ou spécifique anaconda.
matanster
2
Cette réponse est incorrecte. Le point entier de la question est que parfois il ne s'installe pas dans l'environnement. Il s'installe globalement. Pour éviter cela, vous devez d'abord exécuter conda install pipdans l'environnement pour vous assurer que vous utilisez une version locale de pip.
peastman
33

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

Si vous avez un pip non conda comme pip par défaut mais que conda python est votre python par défaut (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 -mavec python afin qu'il utilise le python anaconda pour l'installation

python -m pip install <package>

Cela installe le package dans le répertoire de la bibliothèque anaconda plutôt que dans le répertoire de la bibliothèque associé à (le non-anaconda) pip

alex_danielssen
la source
3
Cela devrait être la réponse. Fonctionne parfaitement sous Windows.
Geordie
9

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

conda create -n env_name pip

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

source activate env_name
conda install pip

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

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

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

Allen Ye
la source
8

C'est ce qui a fonctionné pour moi (reportez-vous à l'image liée)

  1. Ouvrir Anaconda
  2. Sélectionnez Environnements dans le volet de gauche sous Accueil
  3. Juste à droite de l'endroit où vous avez sélectionné et sous la barre "environnements de recherche", vous devriez voir base (racine). Clique dessus
  4. Un triangle pointant vers la droite devrait apparaître, cliquez dessus et sélectionnez "ouvrir le terminal"
  5. Utilisez ici la commande standard pip install. Il n'est pas nécessaire de pointer vers un environnement / chemin

Pour référence future, vous pouvez trouver le dossier dans lequel vos packages sont téléchargés si vous avez une exigence déjà satisfaite. Vous pouvez le voir si vous faites défiler vers le haut dans le terminal. Il devrait lire quelque chose comme: exigence déjà satisfaite, puis le chemin

[ pip installer anaconda]

modatamoproblems
la source
3

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

sudo $(which pip) install <instert_package_name>

travaillé pour moi.

Explication

Il me semble en tout cas which piptrès fiable pour trouver le chemin conda env pip vers où vous êtes. Cependant, lors de l'utilisation sudo, cela semble rediriger les chemins ou autrement casser cela.

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

Petites tables Bobby
la source
3

Toutes les réponses ci-dessus sont principalement basées sur l'utilisation de virtualenv. J'ai juste une nouvelle installation d'anaconda3 et je n'ai pas de virtualenv installé. Donc, j'ai trouvé une meilleure alternative sans me demander comment créer virtualenv.

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

où est pip

Vous obtiendrez quelque chose comme ça en sortie.

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

Copiez le chemin de pip que vous souhaitez utiliser pour installer votre package et collez-le après le remplacement sudo /home/prabhakar/anaconda3/bin/pipdans la commande ci-dessous.

sudo /home/prabhakar/anaconda3/bin/pipinstaller<package-name>

Cela a plutôt bien fonctionné pour moi. Si vous rencontrez des problèmes lors de l'installation, veuillez commenter.

Prabhakar Prasad
la source
3

si vous utilisez Windows OS, ouvrez l' invite Anaconda et tapezactivate yourenvname

Et si vous utilisez Mac ou Linux OS, ouvrez Terminal et tapezsource activate yourenvname

yourenvname voici votre environnement souhaité dans lequel vous souhaitez installer le package pip

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

Ensuite, tout ce que vous avez à faire est une pip installcommande normale, par exemplepip install yourpackage

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

Code_Worm
la source
3

python -m pip install Pillow

Utilisera pip du Python actuel activé avec

source activate shrink_venv

Intsco
la source
3

Dépend de la façon dont vous avez configuré votre variable d'environnement PATH. Lorsque votre shell résout l'appel à pip, quel est le premier bac qu'il trouvera?

(test)$ whereis pip
pip: /home/borja/anaconda3/envs/test/bin/pip /home/borja/anaconda3/bin/pip

Assurez-vous que le dossier bin de votre installation anaconda est avant / usr / lib (selon la façon dont vous avez installé pip). Donc un exemple:

(test) borja@xxxx:~$ pip install djangorestframework
....
Successfully installed asgiref-3.2.3 django-3.0.3 djangorestframework-3.11.0 pytz-2019.3 sqlparse-0.3.1

(test) borja@xxxx:~$ conda list | grep django
django                    3.0.3                    pypi_0    pypi
djangorestframework       3.11.0                   pypi_0    pypi

Nous pouvons voir que djangorestframework a été installé dans mon environnement de test mais si je vérifie ma base:

(base) borja@xxxx:~$ conda list | grep django

C'est vide.

Personnellement j'aime gérer toute ma configuration PATH en utilisant .pam_environment , voici un exemple:

(base) borja@xxxx:~$ cat .pam_environment
PATH DEFAULT=/home/@{PAM_USER}/anaconda3/bin:${PATH}

Un commet supplémentaire. La façon dont vous installez pip peut créer des problèmes:

  • Vous devez utiliser: conda install pip -> les nouveaux packages installés avec pip seront ajoutés à la liste conda.

  • Vous ne devez PAS utiliser: sudo apt install python3-pip -> les nouveaux paquets ne seront pas ajoutés à la liste conda (donc ne sont pas gérés par conda) mais vous pourrez toujours les utiliser (risque de conflit).

BorjaEst
la source
Un commet supplémentaire. La façon dont vous installez pip peut créer des problèmes: - Vous devez utiliser: conda install pip -> les nouveaux packages installés avec pip seront ajoutés à la liste conda. - Vous NE DEVRIEZ pas utiliser: sudo apt install python3-pip -> les nouveaux paquets ne seront pas ajoutés à la liste conda (donc non gérés) mais vous pourrez toujours les utiliser (risque de conflit).
BorjaEst
salut tout le monde :) Comment puis-je supprimer un dossier bin comme /usr/libdans le cas où il se trouve avant mon dossier bin anaconda lors de l'exécution whereis pip?
Lenn
Essayez sudo apt remove python3-pipde supprimer pip de votre distribution linux puis dans le ambience Conda que vous utilisez: conda install -c anaconda pip.
BorjaEst
2

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

Selon anaconda, pip est déjà installé (ce que l'on trouve en utilisant la commande " conda list" sur l'invite anaconda), mais les packages pip n'étaient pas installés alors voici ce que j'ai fait, j'ai réinstallé pip puis pip installé le package.

conda install pip
pip install see

see est un package non-conda.

Abhijeet sinha
la source
2

Eh bien, j'ai essayé toutes les méthodes ci-dessus. Aucun n'a fonctionné pour moi. Ce qui suit a fonctionné pour moi:

  1. Activez votre environnement
  2. Téléchargez le package .whl manuellement à partir de https://pypi.org/simple/ /
  3. Accédez au dossier dans lequel vous avez téléchargé le .whl à partir de la ligne de commande avec votre environnement activé
  4. perform: pip install nom_du_package_pour tout.whl
MGLondon
la source
1

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

Départ seulement:

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 conda.

moto
la source
-1

Je activate shrink_venvferai tout aussi bien. J'ai essayé de créer un nouvel environnement et mon installation conda ne me permet pas d'utiliser la source au début.

Elisavet Fakou
la source
Vous n'avez pas besoin sourceau début si vous êtes sous Windows
KWx