如何在Azure webapp上安装bcrypt?
披露:首次Azure体验如何在Azure webapp上安装bcrypt?
我正在将Azure Web应用部署到Flask应用。所有的部署步骤都很好,直到我打开bcrypt软件包安装并失败。
基于错误日志输出大量的研究后,我发现我可能需要安装bcrypt使用驾驶室(* .WHL)
我从here
- bcrypt-3.1下载下面的文件的3.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的。世界高血压联盟,因为它不符合 这条巨蟒
这是一个令人困惑的消息,因为车轮是为Python 2.7
兼容因为我的Flask应用程序在我的Linux和Windows开发机器上都能正常工作,所以我继续在Windows计算机上创建自己的brypt wheel文件,该文件在Azure上运行相同的Python版本。我上传的新.whl
,重做上述步骤,我仍然得到同样的错误信息
附加说明:
- Azure的控制台上蟒-V返回2.7.8
- 蟒蛇-V同时的virtualenv是激活也返回2.7.8
- Azure门户>应用程序设置显示“Python版本2.7”和“平台32位”。
- 部署之后,将安装requirements.txt中的所有软件包,但bcrypt除外。
- 访问的网页给出了一个500错误(我希望由于缺少LIB)
- 我删除了的virtualenv和GIT与
--find-links wheelhouse
在requirements.txt顶推回购的规定here。
但是,我得到一个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?
我终于能够使用Azure Webapps上的Flask应用程序。 不幸的是,我无法使用我平常的开发工具。
解决方案:
- 我用我的
requirements.txt
文件中创建一个VIRTUALENV在Visual Studio - 动了我的瓶代码到Visual Studio
- 点击发布到Azure中的webapps
它做它的功能,一旦完成,你仍然会得到500错误。 如果是这样,请使用KUDU并查看您的web.config
文件并修改WSGI_ALT_VIRTUALENV_HANDLER
的值以匹配您的Flask应用程序名称。
这是我能够让bcrypt
正确安装以使我的Flask应用程序正常工作的唯一方法。我希望这可以节省一些宝贵的时间。
这就是所有人。
您可以尝试使用easy_install
来安装pip
未能这样做的依赖项。我做的是:
- 进入KUDU调试控制台。这是在开发工具
- 尝试执行
env\scripts\pip install -r requirements.txt
- 对于每一个失败的依赖(如bcrypt),试图通过
env\scripts\easy_install bcrypt==3.1.0
安装它,你也可以尝试通过编辑deploy.cmd
文件自动执行此列。这样在pip
失败的任何一点,easy_install
被执行