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"
我目前找到的唯一解决方案是推动自己的包。这可以帮助你:
http://nicholasjackson.github.io/azure/python/python-packages-and-azure-webjobs/
链接不活更多 – Vitalik
https://web.archive.org/web/20160410031124/http://nicholasjackson.github.io/azure/python/python-packages-and-azure-webjobs – 4c74356b41
底层Web应用程序是一个ASP.NET WebApi。我假设您的答案仅适用于Azure中基于Python的Web应用程序。 –
即使您只在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合并到一起。 –