2011-03-09 8 views
8

私はdotcloudに自分のweb.pyアプリケーションをデプロイしようとしていますが、その方法を理解することはできません。 http://docs.dotcloud.com/static/tutorials/firststeps/wsgiでドットクラウドをWeb.py

をそして私は

のpythonサービスが WSGI標準と互換性の任意のpython Webアプリケーションをホストすることができます... http://docs.dotcloud.com/static/components/python/を見て:

私はこのチュートリアル罰金を通り抜けました。すべての現代のPythonのWebフレームワーク 含ま

:ジャンゴ、Pylonsの、web.py、web2pyの など

を...

のpythonは、nginxの+ uWSGI、supervisordによって管理 で実行されます。静的資産 は、Nginxによって直接提供されます。 のパフォーマンスが向上します。

...

DotCloudアプリを構築するために十分に確立ツールと規則を依存しています。 DotCloud上で動作するようにアプリケーションを適応させるのは簡単です。

...

にアプリを展開する場合、DotCloud はwsgi.py.というファイルを探します をアプリケーションディレクトリのルート に作成してください。


グーグルで "web.py WSGIは" 命令のかなり途方に暮れるの配列を持っているhttp://webpy.org/installにつながります。私はそのページ上でいくつかの提案を試みたが、何もできなかった。

最も有望な見通しはそれほどのようwsgi.pyというファイルを作成しているように見えた:

import web 

urls = (
    '/(.*)', 'hello' 
) 

class hello:  
    def GET(self, name): 
    if not name: 
     name = 'World' 
    return 'Hello, ' + name + '!' 

app = web.application(urls, globals(), autoreload=False) 
application = app.wsgifunc() 

私もその横に空__init__.pyを作成しました。

は、次に私がやった:

dotcloud create jca_hello.py 
dotcloud deploy -t python jca_hello.www 
dotcloud push jca_hello.www . 

しかし、今、私はhttp://www.jca_hello.dotcloud.com/に行くとき、私が見るすべては次のとおりです。

どれ

を見つけ

uWSGIエラー

WSGIアプリケーションではありませんアイデア?

答えて

13

私はweb.pyの仲間のユーザーと私たちはあなたのWSGIアプリケーションを実行するためにuWSGIを使用:-)

方法によってDotCloudで働いています。要点は、uWSGIが "application"という名前の変数を探していることです。ここで

は、私は通常、何をすべきかです:

app = web.application(urls, globals()) 

if __name__ == '__main__': 
    app.run() 
else: 
    web.config.debug = False 
    application = app.wsgifunc() 

ですから、両方のローカルマシン上のアプリケーションを使用し続けることができます:

$ python ./wsgi.py 

そしてもちろんのDotCloudの生産(にプッシュ。 )デバッグモードを無効にします。ここで

はあなたのwsgi.pyファイルが修正されます。

import web 

urls = (
    '/(.*)', 'Hello' 
) 

class Hello(object): 

    def GET(self, name): 
     if not name: 
      name = 'World' 
     return 'Hello, ' + name + '!' 

app = web.application(urls, globals()) 

if __name__ == '__main__': 
    app.run() 
else: 
    web.config.debug = False 
    application = app.wsgifunc() 

正しくの用心、あなたのAPPROOTであなたのwsgi.pyを持ちます。また

あなたが含むあなたのAPPROOTに「requirements.txt」という名前のファイルがあることを確認してください:、一方

web.py 

を、あなたの展開に問題がある場合はDotCloudサポートに連絡することを躊躇しません。

+1

驚くばかりです。できます。私は2時間以内にドットクラウドデベロッパーから詳細な回答を得ることを期待していなかったと言わなければなりません:) –

+0

元の質問の 'application'変数はすでに存在します。いいえ? – skyork