2014-09-12 5 views
0

pycrypto를 사용하는 App Engine 응용 프로그램을 배포했습니다. 나는 로컬 pycrypto를 설치하지만 난 앱 엔진에 배포 할 때 그것은 말한다 :pycrypto random은 GAE에서 지원되지 않습니까?

TargetAppError: Traceback (most recent call last): 
    File "/base/data/home/apps/s~shared-playground/55de226e3bc6746b0c2a029d52be624810ea0d14.376065013735366090/mimic/__mimic/target_env.py", line 968, in RunScript 
    loader.load_module('__main__') 
    File "/base/data/home/apps/s~shared-playground/55de226e3bc6746b0c2a029d52be624810ea0d14.376065013735366090/mimic/__mimic/target_env.py", line 316, in load_module 
    return self.env.LoadModule(self, fullname) 
    File "/base/data/home/apps/s~shared-playground/55de226e3bc6746b0c2a029d52be624810ea0d14.376065013735366090/mimic/__mimic/target_env.py", line 725, in LoadModule 
    exec(code, module.__dict__) # pylint: disable-msg=W0122 
    File "helloworld.py", line 2, in <module> 
    from pycrypto import Random 
ImportError: No module named pycrypto 

나는 다음과 같은 애플리케이션 제목을 가지고

application: my-app-id 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url: /favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 

- url: /.* 
    script: helloworld.app 

libraries: 
- name: webapp2 
    version: "2.5.2" 
- name: pycrypto 
    version: "2.6" 

내 코드는 다음과 같다 :

import webapp2 
from Crypto.Cipher import AES 
from Crypto import Random 

from google.appengine.api import users 

class MainPage(webapp2.RequestHandler): 
    def get(self): 
     user = users.get_current_user() 

     if user: 
      self.response.headers['Content-Type'] = 'text/plain' 
      iv = Random.new().read(AES.block_size) 
      key = b'Sixteen byte key' 
      cipher = AES.new(key, AES.MODE_CFB, iv) 
      msg = iv + cipher.encrypt(b'Attack at dawn') 
      self.response.out.write('Hello, '+ msg + ': ' + user.nickname()) 


     else: 
      self.redirect(users.create_login_url(self.request.uri)) 

app = webapp2.WSGIApplication([ 
    ('/', MainPage) 
], debug=True) 

을 오류의 원인은 매우 간단합니다. pycrypto라는 모듈이 없습니다. 그러나 다음과 같은 thread가있는 것이 좋습니다. 그러면이 오류의 원인은 무엇입니까? 고마워요.

+3

, 당신의 코드와'에서 "최신" 대신 2.6 에 버전을 변경하려고 할 수 있습니다 Crypto import Random' ...? – isedev

답변

0

App Engine은 샌드 박스에 타사 라이브러리를 제공합니다. App Engine에서 지원하는 타사 라이브러리에 대한 링크 [1]을 찾으십시오. 또한 당신은 애플리케이션 제목을

[1] https://cloud.google.com/appengine/docs/python/tools/libraries27 역 추적이 pycrypto 가져 오기 Random`에서 선을`보여줍니다