Развитие навыков Alexa с использованием flask-ask и ошибки ngrok

Я пытаюсь начать развивать навык для Alexa, используя flask-ask и ngrok в python. Вот мой код:

from flask import Flask

from flask_ask import Ask, statement


app = Flask(__name__)
ask = Ask(app, "/")

@ask.launch
def start_skill():
    welcome_message = 'Hello there'
    return statement(welcome_message)

@ask.intent("sampleIntent")
def sampleIntent():
    return statement('I am the sample intent')
    
@app.route('/')
def homepage():
    return "Hi,there"


if __name__ == '__main__':

    app.run(port=7025, debug=True)

Код отлично работает на моем компьютере и возвращает правильный результат, если я распечатываю его и могу просмотреть текст Привет, там, когда я просматриваю как ссылку ngrok https, так и ссылку локального хоста python. И ngrok, и код Python находятся на одном и том же порту 7025.

Я знаю, что проблема в криптографии, так как у меня установлена ​​версия 3.0. В руководстве я получил указание понизить версию криптографии и Werkzeug. Я смог понизить версию Werkzeug, но не смог отказаться от криптографии. Заморозка пипса приведена ниже:

aniso8601==1.2.0
appdirs==1.4.4
ask-sdk-core==1.14.0
ask-sdk-model==1.24.0
ask-sdk-runtime==1.14.0
ask-sdk-webservice-support==1.2.0
asn1crypto==1.4.0
certifi==2020.6.20
cffi==1.14.1
chardet==3.0.4
click==7.1.2
cryptography==3.0
distlib==0.3.1
filelock==3.0.12
Flask==0.12.1
Flask-Ask==0.9.8
flask-ask-sdk==1.0.0
idna==2.10
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
openssl-python==0.1.1
pycparser==2.20
pyOpenSSL==17.0.0
pyserial==2.7
python-dateutil==2.8.1
PyYAML==3.12
requests==2.24.0
six==1.11.0
Unidecode==1.1.1
urllib3==1.25.10
virtualenv==20.0.30
Werkzeug==0.16.0

Когда я пытаюсь понизить криптографию до версии 2.1.4, я получаю много красного текста, однако первая строка выглядит так:

   Running setup.py install for cryptography ... error

Я использую python версии 3.8.5, и у меня есть версия 20.2.2.


person Annon    schedule 11.08.2020    source источник


Ответы (1)


Есть несколько способов решить эту проблему, на мой взгляд, самый простой выглядит так (требуется git):

  1. перейдите в корневую папку вашего проекта
  2. клонировать репозиторий flask-ask: git clone https://github.com/johnwheeler/flask-ask - это создаст локальную копию репо в каталоге вашего проекта
  3. измените файл requirements.txt в / your_project / flask_ask / и удалите номер версии из пакета криптографии. В настоящее время он заморожен на ==2.1.4 - просто удалите ==2.1.4, чтобы pip разрешил правильную зависимость.
  4. После того, как вы изменили базовый пакет и все еще находитесь в / your_project / flask_ask / run pip install -e . - это установит редактируемую копию пакета flask_ask, чтобы дальнейшие обновления были распознаны

введите описание изображения здесь

person kerasbaz    schedule 18.08.2020
comment
Привет, мне очень жаль, что я запоздал с ответом, я назначу награду, когда все исправлю. Думаю, я близок. Я только что увидел это сейчас, так как не получил уведомления, но меня смущает шаг № 3, должен ли я найти его в корневой папке в проводнике Windows? Есть ли для этого команда git? Еще раз спасибо за помощь! - person Annon; 20.08.2020
comment
Для модификации файла requirements.txt? Нет, для этого нет команды git. После того, как вы клонируете в репо, локальная копия репо будет загружена туда, откуда вы ее клонировали. Вам нужно будет записать cd в / flask-ask / (имя репо) и открыть файл requirements.txt. В файле requirements.txt измените версию криптографии, полностью удалив версию, как описано выше. Вам также может потребоваться изменить setup.py и изменить там версию криптографии. После внесения изменений используйте команду pip install -e .. - person kerasbaz; 20.08.2020