披露:首次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
我没有收到任何消息或任何日志输出。当我运行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
这是一个令人困惑的消息,因为wheel是为python2.7设计的
由于我的Flask应用程序在Linux和Windows dev机器上都能正常工作,所以我继续在我的Windows计算机上创建了自己的brypt wheel文件,该文件在Azure上运行相同的Python版本。我上传了新的.whl
,重做了上面的步骤,仍然得到相同的错误消息
附加说明:
--find-links wheelhouse
在顶部推送回购要求.txt如前所述here。Unable to find vcvarsall.bat
错误。这就是为什么我试图通过轮子手动安装我删除了整个virtualenv,将所有需要的包的wheel文件上传到\repository\wheelhouse,并在pip install命令中添加了--no-index
。除了bcrypt,所有的东西都安装好了。
我尝试了bcrypt==3.1.1
,bcrypt==3.1.0
,只是bcrypt
没有指定版本,这没有任何区别。
我没有主意了。有人知道怎么了?如何在Azure webapp上安装bcrypt?在
我终于可以让Flask应用在Azure Webapps上工作了。 不幸的是,我不能用我的工具。在
解决方案:
requirements.txt
文件在visualstudio中创建了一个VirtualEnv它做它所做的,一旦完成,你仍然可能得到一个500错误。 如果是这样,那么使用KUDU并查看您的
web.config
文件并修改WSGI_ALT_VIRTUALENV_HANDLER
值以匹配您的Flask应用程序名称。在这是我能够让
bcrypt
正确安装以使我的Flask应用正常工作的唯一方法。我希望这能为某人节省宝贵的时间。在所有的人都是这样。在
您可以尝试使用
easy_install
来安装依赖项,但是pip
未能安装。我所做的是:env\scripts\pip install -r requirements.txt
env\scripts\easy_install bcrypt==3.1.0
安装它您也可以尝试通过编辑
deploy.cmd
文件来自动执行此操作。这样在pip
失败的任何一点上,easy_install
就会被执行相关问题 更多 >
编程相关推荐