2015-01-03 3 views
5

meteor 앱이 유성 서버 측 코드와 동일한 머신에있는 python 스크립트를 호출하는 가장 좋은 방법은 무엇입니까? 유토피아가 파이썬에서 함수에 문자열을 전달하고 파이썬에서 유성에 문자열을 반환하도록하고 싶습니다.Meteor에서 Python 스크립트 호출하기

나는 파이썬 모니터 mongodb를 가져 와서 값을 추출하고 계산 된 mongodb에 다시 쓸 수 있다고 생각했지만, 파이썬에서 함수를 유성우라고 직접 호출하는 것이 훨씬 깔끔해 보인다.

나는 DDP에 익숙하지 않으며 python-meteor (https://github.com/hharnisc/python-meteor)로는 아주 멀리까지 할 수 없었다.

ZeroRPC (http://zerorpc.dotcloud.com/)은 좋은 방법입니까?

감사합니다.

답변

6

큰 질문입니다.

저는 DDP와 ZeroRPC를 사용하고 파이썬이 Mongo에 직접 쓰는 것을 보았습니다.

Meteor와 Python 대화를하는 가장 쉬운 방법은 파이썬 스크립트를 플라스크 앱으로 설정 한 다음 API를 플라스크 앱에 추가하고 Meteor가 API를 통해 Python과 대화하도록하는 것이 었습니다.

내가 사용이 설치 작업으로 활용하려면 다음

는이 같은 기본 뭔가를 구축 할 수 있습니다를 테스트하려면 유성 HTTP 패키지 (파이썬 스크립트는 텍스트를 대문자로 변환합니다) :

from flask import Flask 
from flask.ext import restful 

app = Flask(__name__) 
api = restful.Api(app) 

class ParseText(restful.Resource): 
    def get(self, text): 
     output = text.upper() 
     return output 

api.add_resource(ParseText, '/<string:text>') 

if __name__ == '__main__': 
    app.run(debug=True) # debug=True is for testing to see if calls are working. 

유성에서는 HTTP.get을 사용하여 API를 테스트합니다.

당신은 유성에서 전화가 아마 같은 것을 보일 것 로컬로 모든 것을 실행하는 경우 : 나는 유성과 ZeroRPC를 사용하려고 Meteor.http.get("http://127.0.0.1:5000/test");

+1

을 바로 후자의 유성 1.3 명령을 사용하여 설치'유성 NPM을 가져올 수 없습니다 설치 - 저장 zerorpc'. Meteor 1.3은 ZeroRPC의 의존성 인 libmsg를 설치하는 몇 가지 [issues] (https://github.com/meteor/meteor/issues/5124) 노드 0.10.43을 사용합니다. 이 솔루션은 기본 Meteor 패키지를 사용하므로 훨씬 더 단순 해 보입니다. 감사! – forgetso

2

저는 RestFul 방식을 사용하여 비슷한 방식으로 somehting을 구현 한 경험이 있습니다. 반환 응답, 관련 파이썬 스크립트/함수를 호출의 요청을 처리 한 후, 서버 (Flask에서) 플라스크를 파이썬 편안한 API를 엔드 포인트에 HTTP 요청을 전송, 유성에서 observeChanges을 유발함으로써

, 유성 후 처리 그에 따라 콜백.

가 나는 또한 전에 파이썬 - 유성을 사용하여 고려했다 child_process 등, DDP를 사용하여 같은 당신이 고려할 수 물론 다른 많은 방법이있다 그러나 모두 (편안 접근 방식은 휴대 성 및 확장 성이 계정에 복용 후 동일한 머신 또는 심지어 다른 머신 ... 서버를 확장하여 더 많은 요청 등을 처리 할 수 ​​있습니다.)

모두의 사용 사례가 다르며 RestFul appoach가 내 사용 사례에 가장 적합하다는 것을 알았습니다. 내 답변을 유용하게 생각하고 귀하의 선택을 넓히고 귀하의 사례에 가장 적합한 것을 선택하시기 바랍니다. 행운을 빕니다.

관련 문제