2016-10-04 5 views
0

Описание: Опыт работы в лазуриКак установить bcrypt на Azure webapp?

Я использую приложение Flask для Azure Webapp. Все шаги развертывания прекрасны, пока я не удалю установку пакета bcrypt и не сработает.

После долгих исследований на основе вывода журнала ошибок, я обнаружил, что я, возможно, потребуется установить Bcrypt с помощью рулевой рубки (* .whl)

Я скачал ниже файлы из here

  • Bcrypt-3.1 0,0-cp27-cp27m-win32.whl
  • Bcrypt-3,1,0-cp27-cp27m-win_amd64.whl

и я скопировал их D:\home\site\repository\wheelhouse

Затем я активировал virtualenv через KUDU и я запустить эту команду:

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. WHL, потому что он не совместим с это Python

Который является запутанным сообщение, потому что колесо для Python 2.7

Поскольку мое приложение Flask отлично работает как на моих машинах Linux, так и на Windows, я пошел вперед и создал свой собственный файл колесных дисков на моем компьютере под управлением Windows, который запускает ту же версию Python на Azure. Я загрузил новый .whl, переделал шаги, описанные выше, и я все еще получаю такое же сообщение об ошибке

Дополнительные примечания:

  • питон -V на Лазурном консоли возвращает 2.7.8
  • питона -V, а virtualenv является активировано также возвращает 2.7.8
  • Azure portal> Параметры приложения показывают «Python версии 2.7» и «Platform 32bits».
  • После развертывания все пакеты в файле требований.txt установлены, кроме bcrypt.
  • При посещении веб-страницы дает ошибку 500 (которую я ожидать из-за отсутствия библиотеки)
  • Я удалил virtualenv и GIT толкнул репо с --find-links wheelhouse в верхней части requirements.txt как указано here.
    Однако, я получаю ошибку Unable to find vcvarsall.bat. Вот почему я пытаюсь вручную установить через колесо
  • Я удалил весь файл virtualenv, загрузил файлы колес для всех необходимых пакетов в \ repository \ wheelhouse и добавил --no-index в мою команду установки pip.Все устанавливается, кроме bcrypt.

  • Я пробовал bcrypt==3.1.1, bcrypt==3.1.0 и только bcrypt без указания версии, и это не имеет никакого значения.

У меня кончились идеи. Кто-нибудь знает, что случилось? Как мне установить установку bcrypt на Azure webapp?

ответ

0

Наконец-то я смог получить приложение Flask, работающее на Azure Webapps. К сожалению, я не мог этого сделать, используя обычные инструменты для разработчиков.

Решение:

  • Я создал VirtualEnv в Visual Studio, используя мой requirements.txt файл
  • Переехал флягу код Visual Studio
  • Нажмите на Опубликовать в Azure WebApps

Он делает то, что он делает, и после его завершения вы все равно можете получить ошибку 500. Если это так, используйте KUDU и посмотрите на свой файл web.config и измените значение WSGI_ALT_VIRTUALENV_HANDLER в соответствии с вашим именем приложения Flask.

Это единственный способ, которым я смог получить bcrypt, чтобы правильно установить приложение для работы с Flask. Надеюсь, это спасет кого-то ценное время.

Это все люди.

0

Возможно, вы попытались использовать easy_install для установки зависимостей, которые не смогли сделать это на pip. Что я сделал:

  1. Перейдите в консоль отладки KUDU. Это указывается в разделе Средства разработки
  2. Try выполнения env\scripts\pip install -r requirements.txt
  3. Для каждой неудачной зависимости (как Bcrypt), попытаться установить его через env\scripts\easy_install bcrypt==3.1.0

Также можно попробовать и автоматизировать это путем редактирования файла deploy.cmd. Таким образом, что в любой момент, когда pip не работает, easy_install выполнен

Смежные вопросы