Python中的Azure WebJob:如何访问azure python包?

问题描述:

我有一个用Python编写的简单的Azure WebJob,它使用了azure python包(位于我的解决方案的venv中)。该作业执行我的本地机器上如预期,但是当我把它部署到Azure的WebJob情况下,我得到以下错误:Python中的Azure WebJob:如何访问azure python包?

导入错误:没有模块名为azure.storage.table

实际的.py是如下:

from azure.storage.table import TableService 

# get table service 
table_service = TableService(account_name='myacct', account_key='mykey') 

# delete table 
table_service.delete_table('MyTable') 

如何从WebJob实例访问湛蓝的包,为什么不MS使这个包普遍对所有的Python WebJob实例访问?

默认情况下,如果杠杆venv在Azure上的Web应用程序你的Python应用程序,您在部署Web应用程序天青之后,venv文件夹将在D:\home\site\wwwroot\env\定位。而且python库将在D:\home\site\wwwroot\env\Lib\site-packages。您可以在您的web应用程序中安装python库,并在您的python web作业脚本中利用这个绝对地址来加载您的python web应用程序中的库。

请尝试以下的测试脚本中WebJobs:

import sys 
sitepackage = "D:\home\site\wwwroot\env\Lib\site-packages" 
sys.path.append(sitepackage) 

try: 
    from azure.storage.table import TableService 
    print "successfully load lib" 
except ImportError, e: 
    print "cannot load lib" 
+0

底层Web应用程序是一个ASP.NET WebApi。我假设您的答案仅适用于Azure中基于Python的Web应用程序。 –

+0

即使您只在webjob中使用python env,一般的想法也是一样的。你可以用你的libs生成一个python env(类似于https://azure.microsoft.com/en-us/documentation/articles/web-sites-python-create-deploy-django-app/#web-app-development --- windows --- python-tools-for-visual-studio),并用你的python webjob脚本打包'env',将'sitepackage'修改为'env \ Lib \ site-packages'的相对路径,将Azure WebJobs合并到一起。 –

我目前找到的唯一解决方案是推动自己的包。这可以帮助你:

http://nicholasjackson.github.io/azure/python/python-packages-and-azure-webjobs/

+0

链接不活更多 – Vitalik

+0

https://web.archive.org/web/20160410031124/http://nicholasjackson.github.io/azure/python/python-packages-and-azure-webjobs – 4c74356b41