如何在 Azure webapp 上安装 bcrypt?

How to pip install bcrypt on Azure webapp?

披露:第一次体验 Azure

我正在将 Flask 应用程序部署到 Azure Webapp。所有部署步骤都很好,直到我安装了 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

我没有收到消息或任何日志输出。当我 运行 a pip freeze > tmp.txt 我得到一个空白文件。

但是当我运行d:\python27\scripts\pip install -r requirements.txt --find-links d:\home\site\repository\wheelhouse

它开始安装包,直到它进入 bcrypt 并且它出错并显示此消息:

Skipping bcrypt-3.1.0-cp27-cp27m-win32.whl because it is not compatible with this Python

这是一个令人困惑的信息,因为轮子是为 Python 2.7

因为我的 Flask 应用程序在我的 Linux 和 Windows 开发机器上都运行良好,我继续在我的 Windows 计算机上创建了我自己的 brypt wheel 文件,运行与 Azure 上的 Python 版本相同。我上传了新的 .whl,重新执行了上述步骤,但我仍然收到相同的错误消息

补充说明:

我运行没主意了。任何人都知道怎么了?如何在 Azure webapp 上安装 bcrypt?

我终于能够让 Flask 应用程序在 Azure Webapps 上运行。 不幸的是,我无法使用我常用的开发工具来做到这一点。

解决方法:

  • 我在 Visual Studio 中使用我的 requirements.txt 文件
  • 创建了一个 VirtualEnv
  • 将我的 Flask 代码移至 Visual Studio
  • 单击“发布到 Azure Webapps”

它会做它会做的事情,一旦完成,您可能仍然会收到 500 错误。 如果是这种情况,请使用 KUDU 并查看您的 web.config 文件并修改 WSGI_ALT_VIRTUALENV_HANDLER 值以匹配您的 Flask 应用名称。

这是我能够 bcrypt 正确安装 Flask 应用程序的唯一方法。我希望这可以节省一些宝贵的时间。

这就是所有的人。

您本可以尝试使用 easy_install 安装依赖项,但 pip 未能成功。我所做的是:

  1. 进入 KUDU 调试控制台。这列在开发工具
  2. 尝试执行 env\scripts\pip install -r requirements.txt
  3. 对于每个失败的依赖项(如 bcrypt),尝试通过 env\scripts\easy_install bcrypt==3.1.0
  4. 安装它

您也可以尝试通过编辑 deploy.cmd 文件来自动执行此操作。这样在 pip 失败的任何时候,都会执行 easy_install