2013-06-11 12 views
8

Próbuję uruchomić hello.py z this Python Heroku tutorial. Moje problemy zaczęły się po uruchomieniu tego polecenia: foreman start. Mam następujący błąd, mimo że zainstalowano Heroku Toolbelt:Bad deskryptor pliku - Heroku Foreman

foreman is not recognized as an internal or external command, operable program or batch file

Więc dodałem lokalizację pliku majster (wersja 0.63.0) do mojego ścieżce:

C:\Program Files (x86)\Heroku\ruby-1.9.2\bin

i ponownym uruchomieniu wiersz polecenia i reran foreman start. Teraz dostaję ten błąd:

Microsoft Windows [Version 6.2.9200] 
(c) 2012 Microsoft Corporation. All rights reserved. 

C:\Users\me\Desktop\Code\heroku_python_app>venv\Scripts\activate 
(venv) C:\Users\me\Desktop\Code\heroku_python_app>foreman start 
Bad file descriptor 
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0 
/lib/foreman/engine.rb:372:in `read_nonblock' 
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0 
/lib/foreman/engine.rb:372:in `block (2 levels) in watch_for_output' 
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0 
/lib/foreman/engine.rb:368:in `loop' 
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0 
/lib/foreman/engine.rb:368:in `block in watch_for_output' 
12:57:38 web.1 | exited with code 1 
12:57:38 system | sending SIGKILL to all processes 

(venv) C:\Users\me\Desktop\Code\heroku_python_app> 

hello.py

import os 
from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def hello(): 
    return 'Hello World' 

Procfile

web: gunicorn hello:app 

EDIT 1

Po przeczytaniu this answer, zrobiłem co następuje:

gem uninstall foreman 
gem install foreman -v 0.61.0 

Jednak, kiedy reran foreman start dostaję ten błąd teraz

(venv) C:\Users\me\Desktop\Code\heroku_python_app>foreman start 
14:13:20 web.1 | started with pid 252 
14:13:20 web.1 | exited with code 1 
14:13:20 system | sending SIGKILL to all processes 
14:13:20  | Traceback (most recent call last): 
14:13:20  | File "C:\Users\me\Desktop\Code\heroku_python_app\venv\Scri 
pts\gunicorn-script.py", line 9, in <module> 

(venv) C:\Users\me\Desktop\Code\heroku_python_app> 

Każda pomoc będzie bardzo mile widziane. Z góry dziękuję.

+0

Zaczynam zdawać sobie sprawę, że Heroku nie jest popularnym tematem na SO w ogóle! Wygląda to tak fajnie i interesująco, nie jestem pewna, dlaczego nikt tak nie myśli. – Anthony

+1

Czy możesz uruchomić polecenie sieciowe ze swojego pliku Procfile bez programu Foreman? – georgebrock

+0

+1 Dziękujemy za odpowiedź @georgebrock. Jak uruchomić polecenie sieciowe z pliku Procfile bez programu Foreman? Samouczek tego nie wyjaśnia. Czy Gunicorn działa również w systemie Windows? Ponieważ kiedy poszedłem na stronę Gunicorn, powiedział, że to dla Unixa. – Anthony

Odpowiedz

6

naprawiłem ten problem wykonując następujące czynności:

gem uninstall foreman 
gem install foreman -v 0.61.0 [EDIT] 

Jak wspomniano here.

+1

Czy twoja wersja jest poprawna? Musiałem użyć -v 0.61.0 – Ward

+0

Tak, masz rację. Dzięki za wskazanie literówki – kfrncs

+1

możesz edytować odpowiedź, aby naprawić tę literówkę? –