2011-03-09 3 views
8

dotcloud에서 web.py app를 배포하려고하지만이를 수행하는 방법을 알 수 없습니다. http://docs.dotcloud.com/static/tutorials/firststeps/wsgi를 사용하여 dotcloud에 대한 Web.py

을 그리고 나는

파이썬 서비스가 WSGI 표준과 호환 파이썬 웹 애플리케이션을 호스팅 할 수 있습니다 ... http://docs.dotcloud.com/static/components/python/ 보았다 :

나는이 튜토리얼 잘 통해 갔다. 모든 현대적인 파이썬 웹 프레임 워크를 포함

: 장고, 철탑, web.py, web2py 등

... Nginx에 + uWSGI, supervisord에 의해 관리 와

파이썬 실행됩니다. 정적 자산 은 Nginx에서 직접 제공합니다 ( ).

...

DotCloud 앱을 구축 잘 확립 된 도구와 규칙을 사용합니다. DotCloud에서 실행되도록 모든 응용 프로그램을 적용하는 것은 간단합니다.

...

하여 응용 프로그램을 배포 할 때, DotCloud 파일이라고 wsgi.py.을 찾습니다

응용 프로그램 디렉토리의 루트 에 해당 파일을 만들어야합니다.


인터넷 검색을 "web.py WSGI는"명령 꽤 어지러 울 배열을 가지고 http://webpy.org/install에 연결됩니다. 나는이 페이지에서 많은 제안을 시도했지만 아무 것도 할 수 없었다.

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을 만들어 :

가장 유망한 전망과 같이 wsgi.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 시간 내에 dotcloud 개발자로부터 상세한 답변을 얻지 못할 것이라고 말한다. –

+0

원래 질문의 'application'변수가 이미 존재한다. 아니? – skyork

관련 문제