【问题标题】:failed to push some refs to heroku未能将一些 refs 推送到 heroku
【发布时间】:2019-06-24 03:10:47
【问题描述】:

我查看了多个类似问题的日志并尝试了一些修复。我发现的修复都没有解决这个问题,所以我希望上传我自己的会有所帮助!

我的文件结构是:

.git(folder)
__psycache__(folder)
static(folder)
templates(folder)
mysite.py(file)
Procfile(file)
requirements.txt(file)

当我尝试通过:

git add .
git commit -am "make it better"
git push heroku master

它没有通过并向我发送一条错误消息(消息如下):

我正在尝试将 python 烧瓶应用程序推送到 heroku,但每次推送时,我都会收到相同的错误:

Total 0 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing python-3.6.7
remote: -----> Installing pip
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote:        Collecting altgraph==0.16.1 (from -r /tmp/build_9198a2bd578560abc42ffe1b42e04366/requirements.txt (line 1))

remote:
remote:            Error running configure
remote:            ERROR: failed building wxWidgets
remote:            Traceback (most recent call last):
remote:              File "build.py", line 1321, in cmd_build_wx
remote:                wxbuild.main(wxDir(), build_options)
remote:              File "/tmp/pip-build-3mun_e25/wxPython/buildtools/build_wxwidgets.py", line 375, in main
remote:                "Error running configure")
remote:              File "/tmp/pip-build-3mun_e25/wxPython/buildtools/build_wxwidgets.py", line 85, in exitIfError
remote:                raise builder.BuildError(msg)
remote:            buildtools.builder.BuildError: Error running configure
remote:            Finished command: build_wx (0m6.238s)
remote:            Finished command: build (0m6.238s)
remote:            Command '"/app/.heroku/python/bin/python" -u build.py build' failed with exit code 1.
remote:
remote:            ----------------------------------------
remote:        Command "/app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-3mun_e25/wxPython/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-7rgfyfwr-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-3mun_e25/wxPython/
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to jasomegathon.
remote:
To https://git.heroku.com/jasomegathon.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/jasomegathon.git'

由于字数限制,我把中间的几行删掉了。

其他说明: - 我在主分支 - 我的 Procfile 显示为“web: gunicorn app:app” - 我正在使用 SQLite,但我打算切换到 postgress - 这是我第一个推送到 Heroku 的网络应用 - 我在 Windows 机器上,但使用的是基于 linux 的 git bash 行

我的需求文件夹:

Flask==1.0.2
Flask-Mail==0.9.1
Flask-SQLAlchemy==2.3.2
Flask-WTF==0.14.2
future==0.17.1
gunicorn==19.9.0
idna==2.8
isort==4.3.4
itsdangerous==1.1.0
jdcal==1.4
Jinja2==2.10
lazy-object-proxy==1.3.1
macholib==1.11
MarkupSafe==1.1.0
mccabe==0.6.1
openpyxl==2.5.12
pefile==2018.8.8
Pillow==5.4.1
pycodestyle==2.4.0
PyInstaller==3.4
pylint==2.2.2
pytz==2018.9
pywin32-ctypes==0.2.0
requests==2.21.0
six==1.12.0
soupsieve==1.7.1
SpeechRecognition==3.8.1
SQLAlchemy==1.2.16
urllib3==1.24.1
Werkzeug==0.14.1
wrapt==1.10.11
WTForms==2.2.1
wxPython==4.0.4

【问题讨论】:

  • mysite.py 是您用来启动烧瓶应用程序的主文件吗?另外,您的烧瓶应用程序是否在本地工作?您的 requirements.txt 文件是什么样的?
  • @NathanWright 这是我的主文件的名称,它可以在本地使用所有功能。我更新了我的帖子以包含需求文件夹的内容。感谢您查看我的问题!
  • 谢谢,我建议了两个步骤。我假设您已经运行了 heroku create?另外,我假设您的 requirements.txt 文件是正确的。如果这些步骤不能解决您的问题,我们将看看上面提到的下一步。

标签: python sqlite heroku flask


【解决方案1】:

也许您可以尝试以下方法:

  1. 您似乎缺少runtime.txt 文件,该文件指定了您希望在 Heroku 上定位的 Python 运行时环境。将以下文件添加到您的项目基目录(如果不只是将其更改为适当的版本,我假设您使用的是 Python 3.7.0 版本:)

    runtime.txt:

    python-3.7.0

  2. 您的 Procfile 看起来不正确,请将其更改为以下内容,因为 mysite.py 是您的应用程序的入口点:

过程文件:

web: gunicorn mysite:app
  1. 您能否将其从您的 requirements.txt 文件中删除:wxPython==4.0.4? Heroku 允许您在云上托管 Web 应用程序,并且据我所知不支持本机 GUI 界面。

    李>
  2. 尝试将此作为您的 requirements.txt 文件,因为它从 pip freeze cmd 中提取了一些不需要的库

requirements.txt:

certifi==2017.7.27.1
chardet==3.0.4
click==6.7
decorator==4.1.2
Flask==0.12.2
Flask-SQLAlchemy==2.3.2
Flask-WTF==0.14.2
future==0.16.0
geocoder==1.32.1
gunicorn==19.7.1
idna==2.6
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
psycopg2==2.7.3.2
ratelim==0.1.6
requests==2.18.4
six==1.11.0
SQLAlchemy==1.1.14
urllib3==1.22
Werkzeug==0.12.2
WTForms==2.1

【讨论】:

  • 我尝试了您提到的更改,但仍然有相同的错误。对于您之前的评论,我已经运行 heroku create 和 git freeze 来获取要求。
  • 您正在创建一个网络应用程序,对吧?不是 wxPython 的 GUI 界面吗?我怀疑您的 pip freeze 已经获取了您之前安装的所有系统范围的库。
  • 是的。它只是 html、css 和 python(Flask)。
  • 你是一个美丽的人!这两天我一直在努力解决这个问题哈哈。这有效,现在已上传。太感谢了!现在迁移到 postgress!
  • 我做了,但我不到 15 个代表,所以它不会公开显示
猜你喜欢
  • 2021-03-07
  • 1970-01-01
  • 2020-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
相关资源
最近更新 更多