披露:首次Azure体验
我正在向Azure Webapp部署Flask应用。所有部署步骤都没问题,直到我点击bcrypt软件包安装并且它失败了。
经过大量基于错误日志输出的研究后,我发现我可能需要使用wheelhouse(* .WHL)安装bcrypt
我从here
下载了以下文件我将它们复制到D:\home\site\repository\wheelhouse
然后,我通过KUDU激活了virtualenv并运行了这个命令:
d:\home\site\wwwroot\env\scripts\pip install -r requirements.txt --find-links d:\home\site\repository\wheelhouse
我没有收到任何消息或任何日志输出。当我运行pip freeze > tmp.txt
时,我得到一个空白文件。
但是当我运行d:\python27\scripts\pip install -r requirements.txt --find-links d:\home\site\repository\wheelhouse
它开始安装软件包,直到它变为bcrypt并且错误地显示:
跳过bcrypt-3.1.0-cp27-cp27m-win32.whl,因为它不兼容 这个Python
这是一个令人困惑的消息,因为轮子是用于Python 2.7
由于我的Flask应用程序在我的Linux和Windows开发机器上运行良好,我继续在我的Windows计算机上创建了自己的brypt wheel文件,该文件在Azure上运行相同的Python版本。我上传了新的.whl
,重新执行了上述步骤,我仍然收到相同的错误消息
额外说明:
--find-links wheelhouse
推送了回购。
但是,我收到Unable to find vcvarsall.bat
错误。这就是我尝试通过滚轮手动安装的原因我删除了整个virtualenv,将所有必需包的wheel文件上传到\ repository \ wheelhouse,并将--no-index
添加到我的pip install命令。除了bcrypt之外,所有东西都已安装。
我在没有指定版本的情况下尝试了bcrypt==3.1.1
,bcrypt==3.1.0
和bcrypt
,但没有任何区别。
我没有想法了。谁知道什么是错的?如何在Azure webapp上安装bcrypt?
答案 0 :(得分:0)
我终于能够让Flask应用程序在Azure Webapps上运行。 不幸的是,我无法使用我常用的开发工具。
<强>解决方案强>:
requirements.txt
文件它完成了它的功能,一旦完成,你可能仍然会收到500错误。
如果是这种情况,请使用KUDU并查看您的web.config
文件并修改WSGI_ALT_VIRTUALENV_HANDLER
值以匹配您的Flask应用名称。
这是我能够正确安装bcrypt
以使我的Flask应用程序正常工作的唯一方法。我希望这能节省宝贵的时间。
那是所有人。
答案 1 :(得分:0)
您可能已尝试使用easy_install
来安装pip
未能执行此操作的依赖项。我做的是:
env\scripts\pip install -r requirements.txt
env\scripts\easy_install bcrypt==3.1.0
您还可以通过编辑deploy.cmd
文件来尝试自动执行此操作。这样pip
失败的任何时候都会执行easy_install