Bibliotecas de Python en Web Job

Mi objective es ejecutar una secuencia de comandos de Python que use las bibliotecas de Anaconda (como Pandas) en Azure WebJob, pero parece que no puede averiguar cómo cargar las bibliotecas.

Empiezo probando una simple copia de blob a blob que funciona cuando se ejecuta localmente, pero me encuentro con un error “ImportError: Ningún módulo llamado ‘azure” cuando se ejecuta en WebJob.

código de ejemplo:

from azure.storage.blob import BlockBlobService blobAccountName =  blobStorageKey =  containerName =  blobService = BlockBlobService(account_name=blobAccountName, account_key=blobStorageKey) blobService.set_container_acl(containerName) b = blobService.get_blob_to_bytes(containerName, 'file.csv') blobService.create_blob_from_bytes(containerName, 'file.csv', b.content) 

Como puede ver, ni siquiera puedo ejecutar las bibliotecas del SDK de Azure … y mucho menos las Anacondas 🙁

Por lo tanto, agradecería que alguien me guiara paso a paso …

¿Cómo ejecuto un script de Python que requiere bibliotecas externas como Anaconda (e incluso Azure SDK)? ¿Cómo “instalo” estas cosas para un WebJob?

¡¡¡Gracias!!!

Parece que conoces la implementación de Azure WebJobs, te ofrezco los siguientes pasos para que muestres cómo cargar bibliotecas externas en scripts de Python.

Paso 1: use el componente virtualenv para crear un entorno de tiempo de ejecución Python independiente en su sistema. Instálelo primero con el comando pip install virtualenv si no lo tiene.

Si lo instaló con éxito, podría verlo en su archivo python / Scripts .

introduzca la descripción de la imagen aquí

Paso 2: Ejecute el comando para crear un entorno de tiempo de ejecución de Python independiente.

introduzca la descripción de la imagen aquí

Paso 3: Luego vaya a la carpeta Scripts del directorio creado y actívelo ( este paso es importante, no se lo pierda )

introduzca la descripción de la imagen aquí

No cierre esta ventana de comandos y use pip install biblioteca pip install para descargar bibliotecas externas en esta ventana de comandos.

introduzca la descripción de la imagen aquí

Paso 4: Mantenga el Sample.py comprimido uniformemente en una carpeta con los paquetes libs en la carpeta Libs / site-packages en la que confía.

introduzca la descripción de la imagen aquí

Paso 5: cree webjob en el servicio de aplicación web y cargue el archivo zip, luego podrá ejecutar su trabajo web y revisar el registro

introduzca la descripción de la imagen aquí

También puede consultar el subproceso SO: Opciones para ejecutar scripts de Python en Azure

Además, si desea utilizar los módulos en Anaconda, descárguelos por separado. No hay necesidad de descargar toda la biblioteca.

Espero que te ayude.

Puede apuntar su Azure WebJob a su entorno de aplicación web principal (y, por lo tanto, a sus paquetes de sitios reales). Esto le permite usar la versión más rápida más rápida de Python compatible con la aplicación web (ahora mismo, la mía es 364×64), mucho mejor que 3.4 o 2.7 en x86. Otro gran beneficio es que no tiene que mantener un conjunto adicional de paquetes que se mantienen estáticamente en un archivo en algún lugar (esto me dio muchos problemas con bibliotecas dinámicas con dependencias locas como psycopg2 y pandas).

CÓMO: En sus archivos de WebJobs, configure un archivo .cmd que ejecute su run.py, y en ese archivo .cmd, solo puede tener una línea de código como esta:

D: \ home \ python364x64 \ python.exe run.py

¡Eso es!

Azure WebJobs mira primero los archivos .cmd, luego ejecuta.py y otros. Vea este enlace para una publicación oficial de MS sobre este método: https://blogs.msdn.microsoft.com/azureossds/2016/12/09/running-python-webjob-on-azure-app-services-using-non- default-python-version /