我正在尝试在Heroku上部署Flask应用。但是在构建时会显示以下错误:
找不到满足lxkeymap == 0.1要求的版本
答案 0 :(得分:0)
正如我提到的,lxkeymap是一个系统应用程序,它是通过apt
安装的,不能通过pip
使用。如Python Dependencies via Pip中所述,Heroku使用pip
安装应用程序的依赖项。
我猜想,当您生成 requirements.txt 文件时,您还包括了系统软件包,可能是通过使用sudo pip freeze
还是没有使用Python虚拟环境或您自己手动编写需求文件。
$ sudo apt-get install lxkeymap
$ sudo pip freeze | grep lxkeymap
lxkeymap==0.1
Heroku预期会失败,因为pip install lxkeymap
将失败。
这里的解决方案是使用virtual environment来管理应用程序的依赖项。我怀疑Flask应用程序是否需要lxkeymap
,因此不应要求将其包含在您的 requirements.txt 文件中(Flask当然不需要它)。您只应直接将应用 需要的那些程序包放进去。
根据需要安装软件包(请勿使用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
sudo
)
(myflaskenv) myflaskapp$ pip3 freeze > requirements.txt
有关更多信息,请参见Managing packages with pip。