python - 未能将一些 refs 推送到 heroku
问题描述
我查看了多个类似问题的日志并尝试了一些修复。我发现的修复程序都没有解决这个问题,所以我希望上传我自己的会有所帮助!
我的文件结构是:
.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'
由于字数限制,我在中间取出了几行。
其他注意事项: - 我在 master 分支 - 我的 Procfile 读取“web:gunicorn app:app” - 我正在使用 SQLite,但我打算切换到 postgress - 这是我第一个推送到 Heroku 的 Web 应用程序 - 我是在 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
解决方案
也许您可以尝试以下方法:
看起来您缺少一个
runtime.txt
文件,该文件指定了您希望在 Heroku 上定位的 Python 运行时环境。将以下文件添加到您的项目基目录(我假设您使用的是 Python 版本 3.7.0,如果不只是将其更改为适当的版本:)运行时.txt:
python-3.7.0
您
Procfile
看起来不好看,请将其更改为以下内容,因为mysite.py是您的应用程序的入口点:
档案:
web: gunicorn mysite:app
你能从你的
requirements.txt
文件中删除它吗:wxPython==4.0.4?
Heroku 允许你在云上托管 Web 应用程序,并且据我所知不支持本机 GUI 界面。试试这个作为你的 requirements.txt 文件,因为它从
pip freeze
cmd中提取了一些不需要的库
要求.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
推荐阅读
- scala - 在 Scala 中仅使用代数持续流式传输
- ocaml - 如何在 Ocaml 中为一组布尔变量生成一组值
- python - 用于投票系统和跟随功能的 Django 模型
- java - 用另一个字符串替换字符串中的字符?
- android - Android app with react-native works on emulator but doesn't on physical device
- azure-active-directory - 如何使用 Azure AD 进行身份验证时排除特定 URL?
- java - Swing/awt gcd 计算器
- python - 在曲面图中截断半个圆环
- ajax - Controller does not recieve data from jsp page
- javascript - 嵌套 Firestore 查询未将结果返回到主查询