2016-08-03 72 views
1

我有一個用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實例訪問?

回答

2

默認情況下,如果槓桿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合併到一起。 –