Не удалось найти версию, которая удовлетворяет требованию lxkeymap == 0.1 - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь развернуть приложение Flask на Heroku. Но при сборке отображается следующая ошибка:

Не удалось найти версию, которая удовлетворяет требованию lxkeymap == 0,1

1 Ответ

0 голосов
/ 07 мая 2019

Как я уже говорил, lxkeymap - это системное приложение, которое устанавливается через apt и НЕ доступно через pip. Как описано в Зависимости Python через Pip , Heroku использует pip для установки зависимостей вашего приложения.

Я предполагаю, что когда вы сгенерировали файл needs.txt , , вы также включили системные пакеты , возможно, используя sudo pip freeze или не используя виртуальную среду Python или вручную написав файл требований.

$ sudo apt-get install lxkeymap
$ sudo pip freeze | grep lxkeymap
lxkeymap==0.1

Heroku, как ожидается, потерпит неудачу, потому что pip install lxkeymap потерпит неудачу.

Решением здесь является использование виртуальной среды для управления зависимостями вашего приложения. Я сомневаюсь, что вам понадобится lxkeymap для вашего приложения Flask, поэтому его не нужно включать в файл needs.txt (Flask, конечно, не нужен). Вы должны помещать только те пакеты, которые необходимо приложению напрямую .

  1. Создание и активация виртуальной среды для вашего приложения
  2. Устанавливайте пакеты один за другим по мере необходимости ( НЕ ИСПОЛЬЗУЙТЕ sudo):

    (myflaskenv) myflaskapp$ pip3 freeze  ## This should be initially empty.
    (myflaskenv) myflaskapp$              
    
    (myflaskenv) myflaskapp$ pip3 install Flask
    (myflaskenv) myflaskapp$ pip3 freeze
    Click==7.0
    Flask==1.0.2
    itsdangerous==1.1.0
    Jinja2==2.10.1
    MarkupSafe==1.1.1
    Werkzeug==0.15.2
    
  3. Создайте needs.txt из своей виртуальной среды (опять же, НЕ ИСПОЛЬЗУЙТЕ sudo)
    (myflaskenv) myflaskapp$ pip3 freeze > requirements.txt
    
  4. При загрузке в Heroku используйте файл needs.txt из виртуальной среды.

Подробнее см. Управление пакетами с помощью pip .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...