Heroku 部署-requirements.txt 拒绝(无法编译 python 应用程序)

Heroku 部署-requirements.txt 拒绝(无法编译 python 应用程序)

抱歉,如果我问错了问题/没有提供足够的信息,但这是我的第一篇帖子……我收到了拒绝推送到 heroku 的消息,如下所示,我认为这是 requirements.text 文件的问题,但作为开发世界的新手,我有点搞不清楚哪个要求失败了?这是一个教程项目,所以不确定为什么会失败,应该很简单?任何帮助表示感谢!!提前致谢。目前在 venv 中使用 3.7.4 python 版本。它是否像恢复到 3.7.3 python 一样简单?

─ git push heroku master         
Enumerating objects: 171, done.
Counting objects: 100% (171/171), done.
Delta compression using up to 4 threads
Compressing objects: 100% (160/160), done.
Writing objects: 100% (171/171), 34.72 KiB | 1015.00 KiB/s, done.
Total 171 (delta 77), reused 4 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote:  !     Python has released a security update! Please consider upgrading to python-3.7.3
remote:        Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> Installing python-3.7.4
remote: -----> Installing pip
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to nameless-shelf-49036.
remote: 
To https://git.heroku.com/nameless-shelf-49036.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/nameless-shelf-49036.git'

要求.txt

atomicwrites==1.3.0
attrs==19.1.0
Click==7.0
coverage==4.5.4
decorator==4.4.0
Flask==1.1.1
-e [email protected]:JRRS1982/flask-tutorial.git@dbe1045a03679a1703b1f884d61ff1310dc2269e#egg=flaskr
importlib-metadata==0.19
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
more-itertools==7.2.0
packaging==19.1
pluggy==0.12.0
public==2019.4.13
py==1.8.0
pyparsing==2.4.2
pytest==5.1.2
self==2019.4.13
six==1.12.0
virtualenv==16.7.4
waitress==1.3.1
wcwidth==0.1.7
Werkzeug==0.15.5
zipp==0.6.0

设置配置文件

[tool:pytest]
testpaths = tests

[coverage:run]
branch = True
source = flaskr

设置.py

from setuptools import find_packages, setup

setup(
  name='flaskr',
  version='1.0.0',
  packages=find_packages(),
  include_package_data=True,
  zip_safe=False,
  install_requires=[
    'flask',
  ],
)

答案1

对我来说,这个问题通过降级补丁版本来解决。

$ cat runtime.txt
3.7.3

在我写这篇文章时,Heroku 没有列出对 3.7.4 的支持。

https://devcenter.heroku.com/articles/python-support

答案2

非常感谢 - 至少几个小时后,我认为我发现问题在于数据库是 SQLite3,而 Heroku 不支持它...

真的很愚蠢,因为这是一个 flask 的教程,一个 python 框架,推荐的部署是 Heroku......它不支持 DB!

如果他们在教程中让我们/我了解情况,或者建议我们在部署(完成教程)或其他方面使用 PostGres,那么麻烦就会少很多。本来想部署,但不确定能否交换数据库,所以会将其保留在本地,并在自述文件中提供一些屏幕截图,否则会有效。谢谢 :)

相关内容