6528


Herokuを使って、Flaskのアプリケーションをpushしたいと思ってます。

Djangoの時はうまくいきましたが、

以下のようにrequirements.txtを記載し、

[code]

    distribute
    psycopg2==2.5.1
    Flask
    Flask-SQLAlchemy==2.0
    Flask-SocketIO==0.4.3
    Jinja2==2.7.2
    SQLAlchemy==0.9.8
    gevent==1.0
    gevent-socketio==0.3.6
    gevent-websocket==0.9.2
    gunicorn==19.2.1
    httplib2==0.9
    
[/code]

distributeのバージョンを記載してハマってるのも見たので  
バージョンを抜いたりしました。

Procfileもファイルの名前も大文字と小文字気をつけて、

[code]

    web: gunicorn app:app --log-file -
    
[/code]

を記載してます。

しかし、

[code]

    git push heroku master
    
[/code]

のコマンドで失敗します。

[code]

    Initializing repository, done.
    Counting objects: 49, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (42/42), done.
    Writing objects: 100% (49/49), 13.59 KiB | 0 bytes/s, done.
    Total 49 (delta 10), reused 0 (delta 0)
    
    
     !     Push rejected, no Cedar-supported app detected
    
    To git@heroku.com:sugichat.git
     ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to 'git@heroku.com:sugichat.git'
    
[/code]

Djangoの時はrequirements.txtのファイルを忘れた時に一度ハマりましたが  
今回は忘れてないのにどうしてもHerokuのリポジトリにpush出来ません。  
ご教授お願いします。


CC BY-SA 3.0
2015-02-15T11:11:23.590
6524
2015-02-19T09:38:50.150
7934
question
python heroku flask
Flaskのアプリをherokuにpushできない


Herokuはアプリのためにキーファイルが必要ですがそのキーファイルが見つからないです。  
そのファイルはおそらく：  
php: index.php  
python: requirements.txt  
ruby: Gemfile  
node: package.json

そうではなければも一回Ｇｉｔをやり直してみてくだいさい。

[code]

    rm -rf .git
    git init
    git add .
    git commit -am "Reinitialize"
    heroku create --stack cedar
    git push heroku master
    
[/code]


CC BY-SA 3.0
2015-02-15T12:46:41.333
6528
2015-02-15T12:53:33.347
2015-02-15T12:53:33.347
7325
7325
6524
answer


> でもなぜ消さないといけないのでしょうか？

私の環境では、.git ファイルを消すようなことをしなくても、スムーズに Heroku への push
ができています。一般的な話としては、下記のような問題が考えられるのではないでしょうか。

  * requirements.txt のスペルミス
  * requirements.txt を repository に追加し忘れていた  
  

    * ディレクトリ内にファイルが存在していても、それを git のリポジトリに commit していないと意味が無いです
  

  * カスタムの buildpack を指定していて、その buildpack が別の Cedar ファイルを要求していた
  * package.json など、python よりも上位に位置づけられる buildpack 用のファイルが存在する（この場合、[Buildpack Multi](https://github.com/ddollar/heroku-buildpack-multi)やカスタムの buildpack が必要になる）  
  

    * 参考: <https://devcenter.heroku.com/articles/buildpacks>
  


CC BY-SA 3.0
2015-02-19T09:38:50.150
6767
2015-02-19T09:38:50.150
5997
6524
answer