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.
Pour d'autres qui rencontrent cette situation, j'ai trouvé que c'était la solution la plus simple:
Exécutez conda create -n venv_name
et source activate venv_name
, où venv_name
est le nom de votre environnement virtuel.
Exécutez conda install pip
. Cela installera pip dans votre répertoire venv.
Recherchez votre répertoire anaconda et recherchez le dossier venv actuel. Cela devrait être quelque part comme /anaconda/envs/venv_name/
.
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!
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
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.
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.
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.
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)
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.
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.
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.
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.