Python 2.7 使用numpy&;Azure web角色中的scipy

Python 2.7 使用numpy&;Azure web角色中的scipy,python-2.7,azure,numpy,scipy,Python 2.7,Azure,Numpy,Scipy,我正在考虑将Azure网站用于带有Flask的Python项目。我已经有一个使用此配置运行的测试站点。我使用的是cPhyton 2.7;IronPhyton在这个项目中被完全抛弃了,据我所知,Azure中还不支持它 糟糕的是,我需要在这个项目中添加scipy&numpy,这是一个不可避免的要求。据我所知,numpy和scipy是编译的非托管代码和python代码的混合体,它们不是标准Azure基础设施的一部分 是否可以将numpy/scipy软件包添加到Azure网站?如果是,怎么做 注意:我知

我正在考虑将Azure网站用于带有Flask的Python项目。我已经有一个使用此配置运行的测试站点。我使用的是cPhyton 2.7;IronPhyton在这个项目中被完全抛弃了,据我所知,Azure中还不支持它

糟糕的是,我需要在这个项目中添加
scipy
&
numpy
,这是一个不可避免的要求。据我所知,numpy和scipy是编译的非托管代码和python代码的混合体,它们不是标准Azure基础设施的一部分

是否可以将numpy/scipy软件包添加到Azure网站?如果是,怎么做

注意:我知道我可以使用虚拟机(azure或非azure),这是我的第二个选择,但我希望做出明智的决定


谢谢

我能够将Numpy添加到我的Azure Web App网站。我相信我的方法也适用于SciPy

我假设您有一个本地存储库(我正在使用GIT)并将其上载到Azure站点。我使用的是Django,库中有一个名为requirements.txt的文件,我打赌Flask也有这个文件。此文件的每一行都包含要添加到安装中的程序包

起初,我只是简单地添加了一行“Numpy”,Azure找到了一个包并尝试安装,但失败了。因此,我的下一次尝试是从该网站下载了一个“wheel.whl”软件包:

其中包括所有依赖项。下载Numpy和SciPy控制盘文件的适当文件(Python的正确版本和32或64位,可在Azure控制面板上选择),并将它们粘贴到基本目录中,然后将它们添加到项目中。现在有一行到requirements.txt,其中只包含文件名,如下所示:

numpy-1.9.2+mkl-cp27-none-win32.whl


提交并推送至Azure,瞧!一切都安装正确。这也适用于我在该站点的OpenCV轮子包。祝你好运

OnTheTrary的答案非常好,但在撰写本文时,网站上的控制盘无法完全按照提供的方式部署到Azure Web应用程序。幸运的是,重命名控制盘文件似乎可以解决numpy、pandas和scipy的问题

当前,当我运行
import pip;打印(pip.pep425tags.get_supported())
从Python 3.4 WebJob中,我得到以下输出:

[09/28/2016 17:08:30 > 775106: INFO] [('cp34', 'none', 'win32'),
('cp34', 'none', 'any'), ('cp3', 'none', 'any'), ('cp33', 'none', 'any'),
('cp32', 'none', 'any'), ('cp31', 'none', 'any'), ('cp30', 'none', 'any'),
('py34', 'none', 'any'), ('py3', 'none', 'any'), ('py33', 'none', 'any'),
('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
来自的
numpy-1.11.2rc1+mkl-cp34-cp34m-win32.whl文件将解析为('cp34','cp34m','win32'),因此不受支持。幸运的是,可以将控制盘重命名为
numpy-1.11.2rc1+mkl-cp34-none-win32.whl
,从而展开控制盘。类似的修改适用于
pandas
scipy

此外,关于OnTeconTrary建议的方法,还有一些说明:

  • 可以找到有关为Web应用部署创建git repo的更多信息。您可以将控制盘添加到git repo的基本目录,然后将每个文件名包含在
    requirements.txt
    文件中
  • 在尝试在WebJob中导入包之前,您需要确保Web应用的site packages文件夹位于系统路径上。您可以通过在WebJob的
    run.py
    文件的开头添加以下行来完成此操作:

    import sys, os
    sys.path.append('D:\\home\\site\\wwwroot\\env\\Lib\\site-packages')
    

很高兴知道。我没有测试过,但看起来不错。我试试看。谢谢。Scipy与win32的工作方式如下:Scipy-0.18.1-cp27-none-win32.whl