Python 个图书馆在网上工作

Python libraries on Web Job

我的目标是在 Azure WebJob 上 运行 一个使用 Anaconda 库(例如 Pandas)的 Python 脚本,但似乎无法弄清楚如何加载库。

我只是通过测试一个简单的 Azure blob 到 blob 文件复制开始,它在本地 运行 时有效,但在 WebJob 中 运行 时遇到错误 "ImportError: No module named 'azure'"

示例代码:

    from azure.storage.blob import BlockBlobService
    blobAccountName = <name>
    blobStorageKey = <key>  
    containerName = <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)

我什至无法将 Azure SDK 库获取到 运行。更不用说 Anaconda 的

如何 运行 需要外部库(例如 Anaconda(甚至 Azure SDK))的 python 脚本。我如何为 WebJob“pip 安装”这些东西?

看来您已经了解 Azure WebJobs 的部署,我提供以下步骤来展示如何在 python 脚本中加载外部库。

第 1 步: 使用 virtualenv 组件在您的 system.Please 中创建一个独立的 python 运行时环境 如果您没有它,请先使用命令 pip install virtualenv 安装它。

如果安装成功,您可以在 python/Scripts 文件中看到它。

Step2 : 运行创建独立python运行环境的命令。

第三步:然后进入创建目录的Scripts文件夹并激活它(这一步很重要,不要错过 )

不要关闭此命令window并使用pip install <your libraryname>在此命令中下载外部库window.

第四步:将Sample.py和你依赖的Libs/site-packages文件夹下的libs包统一压缩到一个文件夹

第 5 步: 在Web app服务中创建webjob并上传zip文件,然后你就可以执行你的Web Job并查看日志

你也可以参考SO线程:

另外,如果要使用Anaconda中的模块,请单独下载。无需下载整个库。

希望对你有帮助。

您可以将您的 Azure WebJob 指向您的主要 WebApp 环境(以及它的真实站点包)。这允许您使用 WebApp 支持的最新最快版本 Python(现在我的是 364x64),比 x86 中的 3.4 或 2.7 好得多。另一个巨大的好处是你不必维护一组额外的包,这些包静态地保存在某个文件中(这给我带来了很多具有疯狂依赖性的动态库的麻烦,例如 psycopg2 和 pandas)。

方法:在您的 WebJobs 文件中,设置一个运行您的 run.py 的 .cmd 文件,在该 .cmd 文件中,您可以只包含一行代码,如下所示:

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

就是这样!

A​​zure WebJobs 首先查看 .cmd 文件,然后 run.py 和其他文件。 有关此方法的官方 MS post,请参阅此 link: https://blogs.msdn.microsoft.com/azureossds/2016/12/09/running-python-webjob-on-azure-app-services-using-non-default-python-version/