Python 如何在Azure webapp上pip安装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

披露:首次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激活了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
    ,不,这对我不起作用。还是一样的错误不,这对我不起作用。还是一样的错误吗