【发布时间】:2016-10-04 23:22:21
【问题描述】:
披露:第一次 Azure 体验
我正在将 Flask 应用程序部署到 Azure Webapp。所有部署步骤都很好,直到我点击 bcrypt 包安装并且它失败了。
根据错误日志输出进行大量研究后,我发现我可能需要使用 Wheelhouse (*.WHL) 安装 bcrypt
我从here下载了以下文件
- bcrypt-3.1.0-cp27-cp27m-win32.whl
- bcrypt-3.1.0-cp27-cp27m-win_amd64.whl
然后我把它们复制到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 轮文件,该文件在 Azure 上运行相同的 Python 版本。我上传了新的.whl,重新执行了上述步骤,我仍然收到相同的错误消息
补充说明:
- Azure 控制台上的 python -V 返回 2.7.8
- python -V 激活 virtualenv 时也返回 2.7.8
- Azure 门户 > 应用程序设置显示“Python version 2.7”和“Platform 32bits”。
- 部署后,requirements.txt中的所有包都安装好了,除了bcrypt。
- 访问网页会出现 500 错误(我预计这是由于缺少 lib)
- 我删除了 virtualenv,GIT 将 repo 推送到了 requirements.txt 顶部的
--find-links wheelhouse,如 here 所述。
但是,我收到Unable to find vcvarsall.bat错误。这就是我尝试通过 wheel 手动安装的原因 我删除了整个 virtualenv,将所有需要的包的 Wheel 文件上传到 \repository\wheelhouse,并在我的 pip install 命令中添加了
--no-index。除 bcrypt 外,所有内容都已安装。我尝试了
bcrypt==3.1.1、bcrypt==3.1.0和bcrypt,但没有指定版本,但没有任何区别。
我的想法用完了。有谁知道出了什么问题?如何在 Azure webapp 上安装 bcrypt?
【问题讨论】:
标签: python azure pip virtualenv bcrypt