2015-11-04 43 views
1

如何將Numpy(和其他需求)添加到Microsoft Azure上的Python WebJob?在Python中導入Numpy WebJob上的文件

我已經在Azure上部署了一個Python WebJob,並且能夠通過手動將它們從本地系統複製到文件夾site-packages並調用sys.path.append('site-packages'),as explained in this post來導入包。這適用於一些軟件包,但不適合numpy。

當嘗試導入numpy的,我得到這個錯誤:

File "site-packages\numpy\core\__init__.py", line 14, in <module> from . import multiarray ImportError: cannot import name 'multiarray'

我一直在使用從我的Mac上運行的Python 3.5 numpy的文件夾嘗試,並從Windows PC上運行的Python 3.4。 Azure WebJob正在運行python 3.4。

理想情況下,我想在某處放置一個requirements.txt,但這似乎不適用於Azure WebJobs。

+0

看看這是否回答你的問題:http://stackoverflow.com/questions/23831479/use-numpy-scipy-in-azure-web-role –

+0

這些解決方案都使用'requirements.txt',這顯然工作使用Azure Web Apps和Web角色,但不能使用WebJobs。 – JrtPec

+0

請嘗試按照https://azure.microsoft.com/zh-CN/documentation/articles/web-sites-python-create-deploy-flask-app/#troubleshooting--中的「故障排除:軟件包安裝」部分進行操作。 -package-installation來做到這一點。 –

回答

4

我發現你需要有site-packages文件夾的完整路徑。

import sys, os 
sys.path.append(os.path.join(os.getcwd(), "site-packages")) 
import numpy as np 

a = np.arange(15).reshape(3, 5) 

print "%r" % a 

還因爲numpy的包含一些C++動態鏈接庫,確保你從Windows計算機複製它。

+1

它的工作原理!我發現使用來自64位Windows機器的網站包不起作用,即使我在64位上設置了Azure。所以我必須在Windows機器上安裝32位python3.4環境來抓取文件。 – JrtPec