第一次使用Heroku。试图推动。我已经运行了命令:
heroku create --buildpack heroku/python
并显示
$ heroku create --buildpack heroku/python
Creating app... done, glacial-reef-7599
Setting buildpack to heroku/python... done
https://glacial-reef-7599.herokuapp.com/ | https://git.heroku.com/glacial-reef-7599.git
堆栈追踪:
$ git push heroku master
Counting objects: 129, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (124/124), done.
Writing objects: 100% (129/129), 69.06 KiB | 0 bytes/s, done.
Total 129 (delta 22), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: ! No default language could be detected for this app.
remote: HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to pure-badlands-9125.
remote:
To https://git.heroku.com/pure-badlands-9125.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/pure-badlands-9125.git'
我必须遗漏一些东西。
我在根目录中添加了requirements.txt
。它看起来像这样:
.git
.idea
projectapp
projectname
rango
db.sqlite3
manage.py
populate_rango.py
requirements.txt
答案 0 :(得分:4)
对于将来的引用,您必须确保将带有代码的分支推送到heroku master
。
如果您从master
分支分支出来,并且所有代码都位于develop
上,则将其推送到heroku主节点。
所以代替:
git push heroku master
您将执行以下操作:
git push heroku develop:master
此问题对此How to push different local Git branches to Heroku/master
具有重要的详细信息答案 1 :(得分:3)
您需要创建一个runtime.txt文件。在命令行上,在您的requirements.txt文件所在的文件夹中,输入echo "python-3.5.1" > runtime.txt
。当然,请确保使用您使用的任何版本的Python切换3.5.1。
答案 2 :(得分:2)
使用Docker
进行部署时,请确保将应用程序的堆栈设置为container
,如docs所示:
heroku stack:set container
答案 3 :(得分:1)
Heroku的Python支持扩展到Python 2.x和Python 3.x系列的最新稳定版本。 今天,这种支持延伸到这些特定的运行时:
尝试在runtime.txt中更改python版本
答案 4 :(得分:1)
我无法记住我是如何解决此问题但在发布此问题后查看我文件中的Date Modified
我创建了两个文件:
runtime.txt
(感谢 rurp ),其中包含:
python-3.5.2
Procfile
包含:
web: gunicorn projectname.wsgi --log-file -
这是一个Django项目,而projectname.wsgi
会导致位于
wsgi.py
projectname/wsgi.py
包含:
import os
import signal
import sys
import traceback
import time
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "projectname.settings")
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
答案 5 :(得分:1)
我正在运行一个 django 项目,但对我来说,上述解决方案都没有奏效。所以最后我放弃并转到错误中提到的路径,它清楚地说明heroku需要以下任一文件来检测django项目:
我通过在项目的根目录中复制 pip freeze 的内容创建了一个 requirements.txt 文件,并且它工作正常。
答案 6 :(得分:0)
在根文件夹中创建 Pipfile 文件,并添加python version
和应用程序所需的包。 check sample file here
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
[packages]
django = "*"
gunicorn = "*"
django-heroku = "*"
[requires]
python_version = "3.6"
答案 7 :(得分:0)
即使包含runtime.txt,我也遇到了同样的问题。有效的是包含requirements.txt
答案 8 :(得分:0)
转到heroku仪表板>进入应用程序>单击设置>向下滚动并单击添加构建包>就我而言,我选择了heroku / nodejs
答案 9 :(得分:0)
要注意的另一件事是在将更改推送到Heroku之前,将更改实际提交到git repo。
您可能在本地设置了requirements.txt,但如果未将其提交给您的存储库,git push heroku master
将无法找到它。
答案 10 :(得分:0)
如果您尝试了上述一些答案,但问题仍然存在;
确保您git
在正确的目录中“提交”。
例如,如果您的文件结构如下:
/src
/...
manage.py
.gitignore
Pipfile/requirements.txt
Pipfile.lock
Procfile
runtime.txt
确保您要从根目录git
添加,提交,推送等。由于我们大部分工作在src/
或main_app_directory/
中,因此我们倾向于忘记在提交之前将目录更改回root。
答案 11 :(得分:0)
就我而言,我在一个git子文件夹中。当我查看根.git文件夹时-该项目确实没有package.json
文件-因此heroku无法识别webpack
答案 12 :(得分:0)
今天遇到这个问题并发布我已经将我的 requirements.txt
命名为 requirements.txt.txt
(当它已经是一个文本文件时,我实际上将文件命名为 .txt 扩展名),我也有一个 {{1 }} 文件,内容为 runtime.txt
。
重命名 requirements.txt 文件正确解决了我的问题。
我的根文件夹中有 3 个文件:code.py、requirements.txt 和 runtime.txt