我下载了PyCrypto的实验版(pycrypto-2.7a1.tar.gz)。我已将“加密”目录(从pycrypto-2.7a1.tar.gz中提取)复制到我的项目文件夹中。
在app.yaml文件中:
libraries:
- name: pycrypto
version: 2.7 # latest
如果我尝试在app.yaml中为PyCrypto提供2.7a1或2.7版本,我会收到错误(在部署时):
appcfg.py: error: Error parsing C:\gaurav\coding\python\x\x\app.yaml: pycrypto version "2.7" is not supported, use one of: "2.3", "2.6" or "latest" ("latest" recommended for development only)
in "C:\gaurav\coding\python\x\x\app.yaml", line 73, column 1.
如何在app.yaml中提供正确的PyCrypto版本?
答案 0 :(得分:1)
您可以使用app.yaml
文件告诉App Engine您要为那些Third-party libraries available at the platform使用 的库和版本。
在您的情况下,您希望使用不可用的库版本,因此您无法使用该方法进行配置。
除此之外,您可以按照this other question中列出的方法将要使用的库上传到App Engine:
pycrypto26
。import sys import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'pycrypto26/lib'))
import Crypto from Crypto.Hash import SHA256, SHA512
一个完整的工作示例是
import webapp2
import logging
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'pycrypto26/lib'))
import Crypto
from Crypto.Hash import SHA256, SHA512
class MainPage(webapp2.RequestHandler):
def get(self):
logging.info("Running PyCrypto with version %s" % Crypto.__version__)
self.response.write('<html><body>')
self.response.write( SHA256.new('abcd').hexdigest() + "<br>" )
self.response.write( SHA512.new('abcd').hexdigest() + "<br>")
self.response.write('</body></html>')
application = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)