python - mac - reinstall pip
Usando Pip para instalar paquetes en el entorno de Anaconda (10)
conda 4.2.13 MacOSX 10.12.1
Estoy tratando de instalar paquetes de
pip
a un entorno nuevo (virtual) creado usando anaconda.
En los documentos de Anaconda
dice que esto está perfectamente bien.
Se hace de la misma manera que para virtualenv.
Active el entorno donde desea colocar el programa, luego instale pip un programa ...
Creé un entorno vacío en Ananconda como este:
conda create -n shrink_venv
Activalo:
source activate shrink_venv
Entonces puedo ver en la terminal que estoy trabajando en mi
(shrink_venv)
.
El problema está surgiendo cuando trato de instalar un paquete usando
pip
:
(shrink_venv): pip install Pillow
Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages
Entonces puedo ver que piensa que el requisito se cumple con el paquete de todo el sistema. Por lo tanto, parece que el entorno no funciona correctamente, definitivamente no es como se dice en los documentos. ¿Estoy haciendo algo mal aquí?
Solo una nota, sé que puede usar
conda install
para los paquetes, pero he tenido un problema con Pillow de anaconda, así que quería obtenerlo de
pip
, y desde que los documentos dicen que está bien.
Salida de la
which -a pip
:
/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip
** ACTUALIZACIÓN ** Veo que este es un problema bastante común.
Lo que he encontrado es que el conda env no juega bien con el PYTHONPATH.
Parece que el sistema siempre se ve en las ubicaciones de PYTHONPATH, incluso cuando está utilizando un entorno conda.
Ahora, siempre ejecuto
unset PYTHONPATH
cuando uso un entorno conda, y funciona mucho mejor.
Estoy en una Mac
Estaba enfrentando un problema al instalar un paquete no conda en anaconda, seguí la respuesta que más me gustó aquí y no funcionó bien (tal vez porque mi anaconda está en el directorio F y el entorno creado estaba en C y no se creó la carpeta bin, No tengo idea, pero no funcionó).
Según anaconda, pip ya está instalado (que se encuentra usando el comando "
conda list
" en el indicador de anaconda), pero los paquetes de pip no se instalaron, así que esto es lo que hice, instalé pip nuevamente y luego pip instaló el paquete.
conda install pip
pip install see
see
es un paquete no conda.
Para aquellos que deseen instalar una pequeña cantidad de paquetes en conda con pip y luego usar,
sudo $(which pip) install <instert_package_name>
trabajó para mi.
Explicación
Parece, para mí de todos modos, que
which pip
es muy confiable para encontrar la ruta de conda env pip a donde estás.
Sin embargo, cuando se usa
sudo
, esto parece redirigir las rutas o romper esto.
El uso de
$(which pip)
ejecuta esto independientemente del
sudo
o cualquiera de los comandos y es similar a ejecutar
/home/<username>/(mini)conda(3)/envs/<env_name>/pip
en Linux.
Esto se debe a que
$()
se ejecuta por separado y la salida de texto se agrega al comando externo.
Para otros que se encuentran con esta situación, descubrí que esta es la solución más sencilla:
-
Ejecute
conda create -n venv_name
ysource activate venv_name
, dondevenv_name
es el nombre de su entorno virtual. -
Ejecute
conda install pip
. Esto instalará pip en su directorio venv. -
Encuentre su directorio anaconda y encuentre la carpeta venv real. Debería estar en algún lugar como
/anaconda/envs/venv_name/
. -
Instale nuevos paquetes haciendo
/anaconda/envs/venv_name/bin/pip install package_name
.
¡Esto ahora debería instalar con éxito paquetes usando el pip de ese entorno virtual!
Resolví este problema de la siguiente manera:
Si tiene un pip no conda como su pip predeterminado, pero conda python es su python predeterminado (como se muestra a continuación)
>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
Luego, en lugar de simplemente llamar a
pip install <package>
, puede usar el módulo flag
-m
con python para que use la anaconda python para la instalación
python -m pip install <package>
Esto instala el paquete en el directorio de la biblioteca anaconda en lugar de hacerlo en el directorio de la biblioteca asociado con el pip (que no es anaconda)
Si SOLO quieres tener una instalación de conda. Simplemente elimine todas las otras rutas de python de su variable PATH.
Dejando solo:
C:/ProgramData/Anaconda3
C:/ProgramData/Anaconda3/Scripts
C:/ProgramData/Anaconda3/Library/bin
Esto le permite usar
pip install *
y se instalará directamente en su instalación de conda.
Si no agregó pip al crear el entorno conda
conda create -n env_name pip
y tampoco instaló pip dentro del entorno
source activate env_name
conda install pip
entonces el único pip que tienes es el pip del sistema, que instalará paquetes globalmente.
Bus, como puede ver en este issue , incluso si realizó cualquiera de los procedimientos mencionados anteriormente, el comportamiento de pip dentro del entorno de conda aún no está definido.
Para garantizar el uso del pip instalado dentro del entorno conda sin tener que escribir el extenso
/home/username/anaconda/envs/env_name/bin/pip
, escribí una función de 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" "$@"
}
Espero que esto te sea útil.
Simplemente
activate shrink_venv
lo hará.
Intenté crear un nuevo entorno y mi instalación de conda no me permite usar la fuente al principio.
Todas las respuestas anteriores se basan principalmente en el uso de virtualenv. Solo tengo una nueva instalación de anaconda3 y no tengo ningún virtualenv instalado. Por lo tanto, he encontrado una mejor alternativa sin preguntarme sobre la creación de virtualenv.
Si tiene muchas versiones de pip y python instaladas en linux, primero ejecute el siguiente comando para enumerar todas las rutas de pip instaladas.
donde esta pip
Obtendrá algo como esto como salida.
pip: / usr / bin / pip
/home/prabhakar/anaconda3/bin/pip
/usr/share/man/man1/pip.1.gz
Copie la ruta de pip que desea usar para instalar su paquete y péguelo después de reemplazar sudo
/home/prabhakar/anaconda3/bin/pip
en el siguiente comando.
sudo
/home/prabhakar/anaconda3/bin/pip
install<package-name>
Esto funcionó bastante bien para mí. Si tiene algún problema para instalar, por favor comente.
Todo lo que tienes que hacer es abrir el mensaje de Anaconda y escribir
pip install package-name
Se instalará automáticamente en el entorno anaconda sin tener que usar
conda install package-name
Debido a que algunos de los paquetes de conda pueden carecer de tiempo extra de soporte, se requiere instalar usando pip y esta es una forma de hacerlo
Si tiene pip instalado en anaconda, puede ejecutar lo siguiente en jupyter notebook o en su shell de python que está vinculado a anaconda
pip.main([''install'', ''package-name''])
Verifique su versión de pip con
pip.__version__
.
Si es la versión
10.xx
o superior, instale su paquete de Python con esta línea de código
subprocess.check_call([sys.executable, ''-m'', ''pip'', ''install'', ''--upgrade'', ''package-name''])
En su cuaderno jupyter, puede instalar paquetes python a través de pip en una celda de esta manera;
!pip install package-name
o podrías usar tu versión de Python asociada con anaconda
!python3.6 -m pip install package-name
si está utilizando el sistema operativo Windows, abra el
símbolo de Anaconda
y escriba
activate yourenvname
Y si está utilizando Mac o Linux OS, abra
Terminal
y escriba
source activate yourenvname
yourenvname
aquí es su entorno deseado en el que desea instalar el paquete pip
después de escribir el comando anterior, debe ver que el nombre de su entorno cambia de la
base
a su entorno
yourenvname
en la salida de la consola (lo que significa que ahora se encuentra en el contexto del entorno deseado)
Entonces, todo lo que necesita hacer es el comando normal de
pip install
pip install yourpackage
p.
pip install yourpackage
Al hacerlo, el paquete pip se instalará en su entorno Conda