抱歉,如果我问错了问题/没有提供足够的信息,但这是我的第一篇帖子……我收到了拒绝推送到 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 的支持。
答案2
非常感谢 - 至少几个小时后,我认为我发现问题在于数据库是 SQLite3,而 Heroku 不支持它...
真的很愚蠢,因为这是一个 flask 的教程,一个 python 框架,推荐的部署是 Heroku......它不支持 DB!
如果他们在教程中让我们/我了解情况,或者建议我们在部署(完成教程)或其他方面使用 PostGres,那么麻烦就会少很多。本来想部署,但不确定能否交换数据库,所以会将其保留在本地,并在自述文件中提供一些屏幕截图,否则会有效。谢谢 :)