2012-10-03 8 views
5

私はPythonとFlaskでHerokuを使用しています。私のアプリケーションは、私のpythonアプリケーションファイルでいくつかの行を更新するまで正常に動作していた。アプリはローカルで正常に動作しますが、私は自分のアプリにアクセスしようとすると、次のエラーが表示されます:小さな変化を押した後、Herokuアプリがクラッシュしました。非常に混乱しています

"アプリケーションにエラーが発生し、ページを処理できませんでした。アプリケーションの所有者であれば、ログで詳細を確認してください。私はもはやもHerokuの通過のpythonを実行することができています

2012-10-03T17:40:26+00:00 heroku[web.1]: Process exited with status 1 
2012-10-03T17:40:26+00:00 heroku[web.1]: State changed from starting to crashed 
2012-10-03T17:51:25+00:00 heroku[web.1]: State changed from crashed to starting 
2012-10-03T17:51:26+00:00 heroku[web.1]: Starting process with command `python presentation.py` 
2012-10-03T17:51:26+00:00 app[web.1]: ImportError: No module named site 

私のログには、次のようになりません

Cinnas-MacBook-Pro:infinite-fortress-4866 cinna$ heroku run python 
Running `python` attached to terminal... up, run.1 
ImportError: No module named site 

私がしようとしている次の事は私の環境をチェックしています変数:

Cinnas-MacBook-Pro:infinite-fortress-4866 cinna$ heroku config 
=== infinite-fortress-4866 Config Vars 
LANG:    en_US.UTF-8 
LD_LIBRARY_PATH: /app/.heroku/vendor/lib 
LIBRARY_PATH:  /app/.heroku/vendor/lib 
PATH:    /app/.heroku/venv/bin:/bin:/usr/local/bin:/usr/bin 
PYTHONHASHSEED: random 
PYTHONHOME:  /app/.heroku/venv/ 
PYTHONPATH:  /app/ 
PYTHONUNBUFFERED: true 

しかし、私がlibを調べようとすると私はこのような何かを得る:

Cinnas-MacBook-Pro:infinite-fortress-4866 cinna$ heroku run ls /app/.heroku/vendor/lib 
Running `ls /app/.heroku/vendor/lib` attached to terminal... up, run.1 
ls: cannot access /app/.heroku/vendor/lib: No such file or directory 

私はこの時点でどこに進むべきかわかりません。私は私のアプリを逃して、助けてください!

追加情報:私は、コードを押されていないアプリは、もはや働いていたとき

@app.route('/my_fb_graph',methods=['GET','POST']) 
def my_fb_graph(): 
return render_template('my_fb_graph.html') 

私は私のapp.pyコードに次の行を追加したときの問題すべてが始まりました。私はその後、これらのコード行を削除し、コードを再度プッシュし、同じエラーが発生しました。次に私がやったことは、app.pyファイルを完全に削除して、動作しなかった小さなテストコードを試してみることでした。

問題の根は誤りであると思わ:

2012-10-03T17:51:26+00:00 app[web.1]: ImportError: No module named site 
+0

あなたがあれば、あなたが行った変更が –

+0

たまさに記述することによって開始することができます私のheroku configは、上記の余分なenvvarsがありません。それを元に戻してもう一度やり直しますか?もしそうなら、あなたの変更に間違いがあります... –

+0

コメントありがとう、私はいくつかの情報を追加しました。私はそれを元に戻すだけでなく、app.pyを完全に削除して小さなテストコードを実行しようとしました。 – Cinna

答えて

6

私は問題を解決することができましたが、それでも、それは最初の場所で発生した理由を知りません!

多くの実験の後、私はHerokuで完全に新しいアプリをセットアップしました。私は新しいアプリで環境変数を確認し、次の得た:

Cinnas-MacBook-Pro:thawing-temple-4323 cinna$ heroku config 
=== thawing-temple-4323 Config Vars 
FACEBOOK_APP_ID: *** 
FACEBOOK_SECRET: *** 
PATH:    bin:/usr/local/bin:/usr/bin:/bin 
PYTHONUNBUFFERED: true 

は私のオリジナルアプリ(壊れたもの)をチェックし、私は私のログで示されるように、新たな環境変数が何らかの形で私の最後のプッシュに追加されたことに気づきました。

2012-10-04T04:20:04+00:00 heroku[api]: Add PYTHONUNBUFFERED, PYTHONPATH, PYTHONHOME, LANG, LD_LIBRARY_PATH, PATH, PYTHONHASHSEED, LIBRARY_PATH config by ***@*** 

、私の環境変数をチェックすることによって:

Cinnas-MacBook-Pro:infinite-fortress-4866 cinna$ heroku config 
=== infinite-fortress-4866 Config Vars 
LANG:    en_US.UTF-8 
LD_LIBRARY_PATH: /app/.heroku/vendor/lib 
LIBRARY_PATH:  /app/.heroku/vendor/lib 
PATH:    /app/.heroku/venv/bin:/bin:/usr/local/bin:/usr/bin 
PYTHONHASHSEED: random 
PYTHONHOME:  /app/.heroku/venv/ 
PYTHONPATH:  /app/ 
PYTHONUNBUFFERED: true 

を私はコマンドを使用して、これらの新しい変数を削除

私のアプリはもう一度動作し始めました。私はより多くのコードを推し進めており、この問題は再び発生していません。

私がやったことは、git pushをしていたので、なぜ、これらの変数が最初に追加されたのか、まだ興味があります。

+0

ありがとう!サイドの質問:どのようにログを取得しましたか?私が知っている唯一のコマンドは「英雄ログ」です。 –

+0

これも私のために働いたので、ありがとう!私のアプリの設定はかなり古いと思いますか? –

6

私は昨日(2012年12月6日)に非常によく似た問題を経験しました。青から、すべてのPython呼び出しが 'ImportError:No module named site'でなくなりました。 Herokuのサポートは今日私に戻ってきました。彼らは最後に修正されたと言います。次の回避策は必要ありません。他の誰かが診断するのに役立てるためにここに残しておきます。

私はheroku config varsをチェックしましたが、PYTHON *変数は設定されていませんでした。

$ heroku run set | grep PYTHON 
PYTHONHASHSEED=random 
PYTHONHOME=/app/.heroku/venv/ 
PYTHONPATH=/app/ 
PYTHONUNBUFFERED=true 

/app/.heroku/venvが存在しないディレクトリた:ENVはしかし、シェルレベルでvarsのよう彼らは、設定しました。私は設定VARとPYTHONHOMEをオーバーライドし、私のvirtualenvのは、実際にあった場所を指摘している場合、それはすべてが再び作業を開始しました:

$ heroku config:set PYTHONHOME=/app 

/アプリは、プロジェクトのルートディレクトリのマウント・ポイントであるように思われます。 Pythonビルドパックの歴史を掘り下げてみると、プロジェクトを開始したときのように、誰もが仮想ルートをプロジェクトルートに作ったように見えます。新しいプロジェクトでは、venv /サブディレクトリにvirtualenvを作成します。サポートは徐々にビルドパックの変更を展開していると言いました。古い方法のチェックが私のために進まなかったと思います。

どこbuildpackの内部を探すためにここにあります:これは、あまりにも、私をビット https://github.com/heroku/heroku-buildpack-python/blob/master/bin/compile

+0

乾杯、それは私のために働いた! –

+0

同じ問題があった、今日、ありがとう。 –

+0

これを試してみて...うまくいきません。私はvirtualenvwrapperを使用しています...それはそれに影響を与えますか? – zakdances

1

。私はそれがいつ始まったのか分からない。私それは私の一部上の任意の変化に応じていたとは思わない、私はちょうど今日の私のsite上でアプリケーションエラーに気づいて、ログにこれを見つけた:

2012-12-12T16:02:06+00:00 heroku[web.1]: State changed from crashed to starting 
2012-12-12T16:02:09+00:00 heroku[web.1]: Starting process with command `aspen --network_address=:40856 --www_root=doc/ --project_root=doc/.aspen` 
2012-12-12T16:02:10+00:00 app[web.1]: ImportError: No module named site 
2012-12-12T16:02:11+00:00 heroku[web.1]: Process exited with status 1 
2012-12-12T16:02:11+00:00 heroku[web.1]: State changed from starting to crashed 

私は行く準備ができて、別のリリースを持っていたので、私いつものように展開されました。 git push herokuの後、サイトがバックアップされます。

$ heroku config 
=== aspen-io Config Vars 
ASPEN_IO_SHOW_GA: yes 
PATH:    bin:/usr/local/bin:/usr/bin:/bin 
PYTHONUNBUFFERED: true 

更新: @kennethreitz pointed methisへ:

Cannot import module site

This occurs when the configured environment variables don't match the paths of the installed Python. When this occurs, it is because someone purged an app's cache without understanding the above implications.

To fix, either purge the cache and update the configuration, or restore the expected configurations (preferred).

関連する問題