0

我想使用Azure應用服務上的Python WebJob讀取/寫入blob存儲。我的應用服務的requirements.txt文件包含azure存儲包名稱:在App Service部署期間通過pip成功安裝包。然而,當我包括我的WebJob的run.py文件中的以下內容:無法通過Python中的azure存儲包訪問blob存儲WebJob

import sys 
sys.path.append('D:\\home\\site\\wwwroot\\env\\Lib\\site-packages') 
from azure.storage.blob import BlockBlobService 

......我會在運行時出現以下錯誤信息:

[09/27/2016 17:51:09 > 775106: SYS INFO] Status changed to Initializing 
[09/27/2016 17:51:09 > 775106: SYS INFO] Run script 'run.py' with script host - 'PythonScriptHost' 
[09/27/2016 17:51:09 > 775106: SYS INFO] Status changed to Running 
[09/27/2016 17:51:10 > 775106: ERR ] Traceback (most recent call last): 
[09/27/2016 17:51:10 > 775106: ERR ] File "run.py", line 11, in <module> 
[09/27/2016 17:51:10 > 775106: ERR ]  from azure.storage.blob import BlockBlobService 
[09/27/2016 17:51:10 > 775106: ERR ] File "D:\home\site\wwwroot\env\Lib\site-packages\azure\storage\blob\__init__.py", line 15, in <module> 
[09/27/2016 17:51:10 > 775106: ERR ]  from .models import (
[09/27/2016 17:51:10 > 775106: ERR ] File "D:\home\site\wwwroot\env\Lib\site-packages\azure\storage\blob\models.py", line 15, in <module> 
[09/27/2016 17:51:10 > 775106: ERR ]  from .._common_conversion import _to_str 
[09/27/2016 17:51:10 > 775106: ERR ] File "D:\home\site\wwwroot\env\Lib\site-packages\azure\storage\_common_conversion.py", line 22, in <module> 
[09/27/2016 17:51:10 > 775106: ERR ]  from .models import (
[09/27/2016 17:51:10 > 775106: ERR ] File "D:\home\site\wwwroot\env\Lib\site-packages\azure\storage\models.py", line 23, in <module> 
[09/27/2016 17:51:10 > 775106: ERR ]  from ._error import (
[09/27/2016 17:51:10 > 775106: ERR ] File "D:\home\site\wwwroot\env\Lib\site-packages\azure\storage\_error.py", line 15, in <module> 
[09/27/2016 17:51:10 > 775106: ERR ]  from ._common_conversion import _to_str 
[09/27/2016 17:51:10 > 775106: ERR ] ImportError: cannot import name '_to_str' 
[09/27/2016 17:51:10 > 775106: SYS INFO] Status changed to Failed 
[09/27/2016 17:51:10 > 775106: SYS ERR ] Job failed due to exit code 1 

FWIW,其他幾個包是正確加載使用同樣的方法。任何人都可以提出一種方法來獲得在Azure WebJobs中使用Azure存儲包的工作嗎?

+0

如果你不能導入BlockBlobService,你可以試試這個答案http://stackoverflow.com/questions/35558463/how-to-import-azure-blobservice-in-python。 – johnny

+0

嗨,約翰尼,我在過去也遇到過這個問題,但似乎並不是這裏發生的事情。 – mewahl

回答

1

看起來像六個模塊丟失。此問題也通過此線索跟蹤:https://github.com/Azure/azure-storage-python/issues/22。您可以通過將以下六個模塊添加到requirements.txt或通過pip安裝六手動安裝六個模塊來解決問題。

+0

感謝Gunjan - 看起來就是這個問題! – mewahl