2016-10-04 124 views
0

披露:首次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.1bcrypt==3.1.0,只是bcrypt不指定版本,它沒有任何區別。

我跑出了想法。任何人都知道什麼是錯的?我如何着手在Azure webapp上安裝bcrypt?

回答

0

我終於能夠使用Azure Webapps上的Flask應用程序。 不幸的是,我無法使用我平常的開發工具。

解決方案

  • 我用我的requirements.txt文件中創建一個VIRTUALENV在Visual Studio
  • 動了我的瓶代碼到Visual Studio
  • 點擊發布到Azure中的webapps

它做它的功能,一旦完成,你仍然會得到500錯誤。 如果是這樣,請使用KUDU並查看您的web.config文件並修改WSGI_ALT_VIRTUALENV_HANDLER的值以匹配您的Flask應用程序名稱。

這是我能夠讓bcrypt正確安裝以使我的Flask應用程序正常工作的唯一方法。我希望這可以節省一些寶貴的時間。

這就是所有人。

0

您可以嘗試使用easy_install來安裝pip未能這樣做的依賴項。我做的是:

  1. 進入KUDU調試控制檯。這是在開發工具
  2. 嘗試執行env\scripts\pip install -r requirements.txt
  3. 對於每一個失敗的依賴(如bcrypt),試圖通過env\scripts\easy_install bcrypt==3.1.0

安裝它,你也可以嘗試通過編輯deploy.cmd文件自動執行此列。這樣在pip失敗的任何一點,easy_install被執行