tutorial instalar distribución descargar python pip anaconda

python - instalar - Instale solo paquetes disponibles usando "conda install--yes--file required.txt" sin error



instalar anaconda python (4)

Al instalar paquetes en require.txt usando Conda a través del siguiente comando

conda install --yes --file requirements.txt

Si un paquete en required.txt no está disponible, arroja un mensaje "Sin error de paquete" como el que se muestra a continuación:

Uso del sitio api de Anaconda Cloud https://api.anaconda.org

Obteniendo metadatos del paquete: ....

Error: no se encontraron paquetes en la coincidencia actual de canales de linux-64: nimfa == 1.2.3

Puede buscar este paquete en anaconda.org con

anaconda search -t conda nimfa ==1.2.3

En lugar de arrojar un error, ¿es posible cambiar este comportamiento de modo que instale todos los paquetes disponibles en require.txt y arroje una advertencia para aquellos que no están disponibles?

Me gustaría esto porque, el paquete nimfa que el error dice que no está disponible, se puede instalar pip. Entonces, si puedo cambiar el comportamiento de conda install --yes --file requirements.txt para lanzar una advertencia para los paquetes no disponibles, puedo seguir con el comando pip install -r requirments.txt en .travis.yml para que TravisCI intenta instalarlo desde cualquier lugar donde esté disponible.


La respuesta de Pbms aquí es la forma correcta de hacerlo, suponiendo que tenga un entorno existente para copiar. Conda es totalmente capaz de instalar tanto paquetes Conda como paquetes pip, como se detalla en environment.yml . Quería documentar todo el proceso con más detalle. Tenga en cuenta que estoy usando entornos basados ​​en carpetas, por eso agregué --prefix [path to environment folder] a la mayoría de los comandos.

Supongamos que instaló un entorno para un proyecto existente en una carpeta llamada env en la carpeta actual, así:

conda create --prefix ./env

Generarías environment.yml para el environment.yml de ese proyecto así:

conda env export --prefix ./env > environment.yml

Crearía un nuevo entorno dentro de otra carpeta copiando environment.yml allí y luego ejecutando esto desde allí:

conda env create --prefix ./env --file environment.yml

Obtendría un entorno ya existente para que coincida con environment.yml copiando una vez más environment.yml allí y luego ejecutando esto desde allí:

conda env update --prefix ./env --file environment.yml --prune

Con el entorno en cuestión activo, verificaría el estado de sus paquetes de esta manera:

conda list

Esta es una versión abreviada de lo que ese comando podría imprimir (tenga en cuenta que los paquetes pip están marcados como pypi ):

# Name Version Build Channel pip 19.2.2 py37_0 python 3.7.4 h5263a28_0 numpy 1.16.4 py37h19fb1c0_0 pandas 0.25.1 py37ha925a31_0 pyodbc 4.0.27 py37ha925a31_0 ibm-db 3.0.1 pypi_0 pypi ibm-db-sa 0.3.5 pypi_0 pypi

Finalmente, esta es una versión resumida de cómo se vería environment.yml (tenga en cuenta que los paquetes pip se enumeran en su propia categoría):

dependencies: - pip=19.2.2=py37_0 - python=3.7.4=h5263a28_0 - numpy=1.16.4=py37h19fb1c0_0 - pandas=0.25.1=py37ha925a31_0 - pyodbc=4.0.27=py37ha925a31_0 - pip: - ibm-db==3.0.1 - ibm-db-sa==0.3.5

Tenga en cuenta que usar Conda y pip juntos puede causar un poco de acidez estomacal porque, sin saberlo, pueden eliminar las dependencias de los demás. Se supone que primero debe instalar todos sus paquetes de Conda y luego todos sus paquetes pip, en lugar de alternar entre los dos. Si su entorno se rompe, la recomendación oficial es eliminarlo y volver a crearlo (desde su archivo environment.yml ). Para más detalles, consulte esta guía:

https://www.anaconda.com/using-pip-in-a-conda-environment/


Para aquellos que buscan, utilicé esto como la solución de @TillHoffmann para la concha de pescado:

$ while read requirement; conda install --yes $requirement; end < requirements.txt

Y

$ while read requirement; conda install --yes $requirement;or pip install $requirement; end < requirements.txt


Puedes hacer esto como se menciona en this

Exportar a archivo .yml

conda env export > freeze.yml

Reproducir:

conda env create -f freeze.yml


Terminé simplemente iterando sobre las líneas del archivo

$ while read requirement; do conda install --yes $requirement; done < requirements.txt

Editar : si desea instalar un paquete usando pip si no está disponible a través de conda, pruebe esto:

$ while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt

Editar : si está utilizando Windows (el crédito va a @Clay ):

$ FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f" || pip install "%f"