He instalado y he estado usando la distribución Anaconda Python, y he comenzado a usar el entorno Anaconda (Conda). Puedo usar el conda install...
comando estándar para colocar paquetes de la distribución en mis entornos, pero para usar cualquier cosa externa (es decir, Flask-WTF, frasco-sqlalchemy y alambique) que necesito usar pip install
en el entorno activo. Sin embargo, cuando miro el contenido del entorno, ya sea en el directorio o usando conda list
estos pip install
paquetes ed, no aparecen.
Usando pip freeze
y pip list
solo enumera cada paquete que he instalado.
¿Hay alguna manera de hacer un seguimiento de lo que hay en cada uno de mis Anaconda env
(ambos pip
e conda
instalados)?
pip
instalado conconda
, p~/anaconda/bin/pip
. Ej . Úselo para instalar paquetes en unconda
entorno, así como para ver la unión de paquetes instalados con estopip
y conconda install
.conda list
ha incluido durante un tiempo paquetes de python que se instalaron por otros medios (por ejemplo, pip, instalación fácil, directamente conpython setup.py install
, etc.)Respuestas:
conda-env ahora lo hace automáticamente (si pip se instaló con conda).
Puede ver cómo funciona esto utilizando la herramienta de exportación utilizada para migrar un entorno:
El archivo enumerará tanto los paquetes conda como los paquetes pip:
Si desea continuar con la exportación del entorno, vaya
environment.yml
a la nueva máquina host y ejecute:fuente
conda
solo hará un seguimiento de los paquetes que instaló. Ypip
le dará los paquetes que se instalaron utilizando elpip
instalador en sí o que utilizaronsetuptools
en susetup.py
compilación de modo que conda generó la información del huevo. Entonces tienes básicamente tres opciones.Usted puede tomar la unión de la
conda list
epip freeze
y gestionar paquetes instalados usandoconda
(que muestran laconda list
) con elconda
gestor de paquetes y los que se instalan conpip
(ese programa enpip freeze
pero no enconda list
) conpip
.Instalar sólo en el entorno
python
,pip
ydistribute
los paquetes y gestionar todo conpip
. (Esto no es tan trivial si estás en Windows ...)Cree sus propios
conda
paquetes y gestione todo conconda
.Yo personalmente recomendaría la tercera opción ya que es muy fácil construir
conda
paquetes. Hay un repositorio git de recetas de ejemplo en la cuenta github del continuo. Pero generalmente se reduce a:o solo:
Además, cuando los haya creado una vez, puede subirlos a https://binstar.org/ e instalarlos desde allí.
Entonces tendrás todo administrado usando
conda
.fuente
~/anaconda/bin/pip install memory-profiler
yconda install numba
, y ambos se muestran~/anaconda/bin/pip freeze
.conda install C:\...PACKAGE-0.0.0-py27_0.tar.bz2
que se describe en stackoverflow.com/a/20750388/125507conda install python=3.x.y
en su entorno de conda de modo que las instalaciones posteriores de pip pasen por el pip instalado de conda.Hay una rama de conda (new-pypi-install) que agrega una mejor integración con pip y PyPI. En particular, la lista de conda también mostrará los paquetes instalados con pip y la instalación de conda primero intentará encontrar un paquete de conda y, en su defecto, utilizará pip para instalar el paquete.
Esta rama está programada para fusionarse más adelante esta semana para que la versión 2.1 de conda tenga una mejor integración pip con conda.
fuente
conda install package
y no puede encontrar una receta de conda, intenta instalarla a través depip
(y luego realiza un seguimiento). Incluso sugiere útil la instalación,pip
si no en su entorno. ¡Gracias Travis por todo tu trabajo!conda install autopep8
me dice "No se encontró ningún paquete" y que debería buscar en anaconda.org manualmente.running pip...
tampoco funciona, no buscará el paquete conda en absoluto.Seguí la respuesta de @Viktor Kerkez y he tenido un éxito mixto. Encontré que a veces esta receta de
parecería que todo funcionó pero no pude importar con éxito el PAQUETE. Recientemente pregunté sobre esto en el grupo de usuarios de Anaconda y escuché del propio @Travis Oliphant sobre la mejor manera de usar conda para construir y administrar paquetes que no se envían con Anaconda. Puede leer este hilo aquí , pero describiré el enfoque a continuación para que las respuestas a la pregunta del OP sean más completas ...
Ejemplo: voy a instalar el excelente paquete prettyplotlib en Windows usando conda 2.2.5.
1a)
conda build --build-recipe prettyplotlib
Verá que todos los mensajes de compilación se ven bien hasta la sección TEST final de la compilación. Vi este error
1b) Vaya a / conda-recipes / prettyplotlib y edite el archivo meta.yaml. Actualmente, los paquetes que se configuran como en el paso 1a dan como resultado archivos yaml que tienen un error en la
test
sección. Por ejemplo, así es como se buscaba el míoprettyplotlib
Edite esta sección para eliminar la línea en blanco precedida por - y también elimine la línea redundante prettyplotlib. Al momento de escribir esto, descubrí que necesito editar la mayoría de los archivos meta.yaml como este para paquetes externos que estoy instalando con conda, lo que significa que hay una línea de importación en blanco que causa el error junto con una importación redundante del paquete dado .
1c) Vuelva a ejecutar el comando desde 1a, que esta vez debería completarse sin error. Al final de la compilación, se le preguntará si desea cargar la compilación en binstar . Ingresé No y luego vi este mensaje:
Ese archivo tar.bz2 es la compilación que ahora necesita instalar realmente.
2)
conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
Siguiendo estos pasos, he utilizado con éxito conda para instalar varios paquetes que no vienen con Anaconda. Anteriormente, había instalado algunos de estos utilizando pip, así que lo hice
pip uninstall PACKAGE
antes de instalar PACKAGE con conda. Usando conda, ahora puedo administrar (casi) todos mis paquetes con un solo enfoque en lugar de tener una combinación de cosas instaladas con conda, pip, easy_install y python setup.py install.Para el contexto, creo que esta reciente publicación de blog de @Travis Oliphant será útil para las personas como yo que no aprecian todo lo que entra en el robusto empaque de Python, pero ciertamente aprecian cuando las cosas "simplemente funcionan". Conda parece un gran camino a seguir ...
fuente
Es por eso que escribí Picky: http://picky.readthedocs.io/
Es un paquete de Python que rastrea los paquetes instalados con pip o conda en virtualenvs y conda envs.
fuente
Creo que lo que falta aquí es que cuando lo haces:
para instalar un paquete local con un archivo setup.py, instala un paquete que es visible para todos los entornos de conda que usan la misma versión de python. Tenga en cuenta que estoy usando la versión conda de pip!
por ejemplo, si estoy usando python2.7, pone el paquete local aquí:
/usr/local/anaconda/lib/python2.7/site-packages
Si luego creo un nuevo entorno de conda con python = 2.7 (= el valor predeterminado):
Y luego hacer:
Sin embargo, si lo hago:
Entonces, en este caso, conda no conoce el paquete pip, pero el paquete está disponible para python.
Sin embargo, si instalo el paquete local (nuevamente usando pip) después de haber creado (y activado) el nuevo conda env, ahora conda lo ve:
Por lo tanto, creo que la interacción entre conda y pip tiene algunos problemas, es decir, usar pip para instalar un paquete local desde un conda env hace que ese paquete esté disponible (pero no se ve a través de la lista de conda) para todos los demás env conda de la misma versión de Python.
fuente
conda env export
enumera todos los paquetes conda y pip en un entorno.conda-env
debe instalarse en la raíz de conda (conda install -c conda conda-env
).Para escribir un
environment.yml
archivo que describa el entorno actual:Referencias
fuente
Normalmente prefijo la carpeta 'bin / pip' para el entorno específico en el que desea instalar el paquete antes del comando 'pip'. Por ejemplo, si desea instalar pymc3 en el entorno py34, debe usar este comando:
Básicamente, solo necesita encontrar la ruta correcta a la carpeta 'bin / pip' de su entorno y colocarla antes del comando de instalación.
fuente
Mi
which pip
muestra la siguiente ruta:Entonces, cualquier paquete que instale usando
pip install <package-name>
tendrá que reflejarse en la lista de paquetes cuando la lista se exporta usando:Pero yo no. Entonces, en su lugar, utilicé el siguiente comando según lo sugerido por varios otros:
Ahora, puedo ver todos los paquetes en mi
all-packages.yml
archivo.fuente
Puede comenzar instalando el siguiente comando dado en el entorno conda:
conda install pip
Luego, instale todos los paquetes de pip que necesita en el entorno.
Después de instalar todos los paquetes conda y pip para exportar el uso del entorno:
conda env export -n <env-name> > environment.yml
Esto creará el archivo requerido en la carpeta
fuente