Python 如何在Azure webapp上pip安装bcrypt?
披露:首次Azure体验 我正在将Flask应用程序部署到Azure Webapp。所有部署步骤都很好,直到我点击bcrypt包安装失败 在基于错误日志输出的大量研究之后,我发现可能需要使用驾驶室(*.WHL)安装bcrypt 我从下载了以下文件Python 如何在Azure webapp上pip安装bcrypt?,python,azure,pip,virtualenv,bcrypt,Python,Azure,Pip,Virtualenv,Bcrypt,披露:首次Azure体验 我正在将Flask应用程序部署到Azure Webapp。所有部署步骤都很好,直到我点击bcrypt包安装失败 在基于错误日志输出的大量研究之后,我发现可能需要使用驾驶室(*.WHL)安装bcrypt 我从下载了以下文件 bcrypt-3.1.0-cp27-cp27m-win32.whl bcrypt-3.1.0-cp27-cp27m-win_amd64.whl 我把它们复制到D:\home\site\repository\wheelhouse 然后,我通过KUDU
- 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
我没有收到任何消息或任何日志输出。当我运行pipfreeze>tmp.txt时,我得到一个空白文件
但是当我运行d:\python27\scripts\pip install-r requirements.txt时--查找链接d:\home\site\repository\wheelhouse
它开始安装软件包,直到到达bcrypt,并出现以下错误消息:
正在跳过bcrypt-3.1.0-cp27-cp27m-win32.whl,因为它与不兼容
这条蟒蛇
这是一条令人困惑的消息,因为轮子是用于Python 2.7的
由于我的Flask应用程序在Linux和Windows dev机器上都能正常工作,所以我继续在Windows计算机上创建了自己的brypt wheel文件,该文件在Azure上运行相同的Python版本。我上传了新的.whl
,重播了上面的步骤,仍然收到相同的错误消息
附加说明:
- Azure控制台上的python-V返回2.7.8
- 激活virtualenv时,python-V也返回2.7.8
- Azure portal>应用程序设置显示“Python 2.7版”和“平台32位”
- 部署后,requirements.txt中的所有软件包都将安装,bcrypt除外
- 访问网页时会出现500个错误(我预计是由于缺少lib)
- 我删除了virtualenv,GIT在requirements.txt顶部用
--find links wheelhouse
推送回购协议,如前所述。
但是,我得到一个找不到vcvarsall.bat
错误。这就是为什么我试图手动安装通过车轮
- 我删除了整个virtualenv,将所有必需软件包的控制盘文件上载到\repository\wheelhouse,并在我的pip安装命令中添加了
--no index
。除了bcrypt之外,所有东西都已安装
- 我尝试了
bcrypt==3.1.1
,bcrypt==3.1.0
,只是bcrypt
,没有指定版本,没有任何区别
我没有主意了。有人知道怎么了吗?如何在Azure webapp上安装bcrypt?我终于能够让Flask应用在Azure webapp上运行。
不幸的是,我不能使用我常用的开发工具来完成它
解决方案:
- 我使用
requirements.txt
文件在Visual Studio中创建了一个VirtualNV
- 已将我的Flask代码移动到Visual Studio
- 单击发布到Azure Webapps
它执行它所执行的操作,一旦完成,您可能仍然会得到500个错误。
如果是这种情况,请使用KUDU并查看您的web.config
文件,然后修改WSGI\u ALT\u VIRTUALENV\u HANDLER
值以匹配您的Flask应用程序名称
这是我能够正确安装Flask应用程序的唯一方法。我希望这能节省一些宝贵的时间
这就是所有人。我终于能够让Flask应用程序在Azure Webapps上运行了。
不幸的是,我不能使用我常用的开发工具来完成它
解决方案:
- 我使用
requirements.txt
文件在Visual Studio中创建了一个VirtualNV
- 已将我的Flask代码移动到Visual Studio
- 单击发布到Azure Webapps
它执行它所执行的操作,一旦完成,您可能仍然会得到500个错误。
如果是这种情况,请使用KUDU并查看您的web.config
文件,然后修改WSGI\u ALT\u VIRTUALENV\u HANDLER
值以匹配您的Flask应用程序名称
这是我能够正确安装Flask应用程序的唯一方法。我希望这能节省一些宝贵的时间
这就是所有人。您可以尝试使用easy\u install
来安装依赖项,但是pip
无法安装这些依赖项。我所做的是:
进入KUDU调试控制台。这列在“开发工具”下
尝试执行env\scripts\pip安装-r requirements.txt
对于每个失败的依赖项(如bcrypt),请尝试通过env\scripts\easy\u install bcrypt==3.1.0
您还可以尝试通过编辑deploy.cmd
文件来自动执行此操作。这样,在pip
失败的任何时候,都会执行easy\u install
,您可以尝试使用easy\u install
来安装通过pip
失败的依赖项。我所做的是:
进入KUDU调试控制台。这列在“开发工具”下
尝试执行env\scripts\pip安装-r requirements.txt
对于每个失败的依赖项(如bcrypt),请尝试通过env\scripts\easy\u install bcrypt==3.1.0
您还可以尝试通过编辑deploy.cmd
文件来自动执行此操作。这样,在pip
失败的任何时候,都会执行easy\u install
,不,这对我不起作用。还是一样的错误不,这对我不起作用。还是一样的错误吗