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
就是这样!
Azure 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/
我的目标是在 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
就是这样!
Azure 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/