Python webapp2-只读文件系统错误
我正在使用Python(webapp2)和Jinja2开发一个googleappengine应用程序,并试图使用库创建一个PDF文件 例如:Python webapp2-只读文件系统错误,python,google-app-engine,jinja2,webapp2,Python,Google App Engine,Jinja2,Webapp2,我正在使用Python(webapp2)和Jinja2开发一个googleappengine应用程序,并试图使用库创建一个PDF文件 例如: from reportlab.pdfgen import canvas class pdf(webapp2.RequestHandler): def get(self): x = 50 y = 750 c = canvas.Canvas("file.pdf") c.drawString(x*5,y,"Output")
from reportlab.pdfgen import canvas
class pdf(webapp2.RequestHandler):
def get(self):
x = 50
y = 750
c = canvas.Canvas("file.pdf")
c.drawString(x*5,y,"Output")
c.line(x,y-10,x*11,y-10)
c.save()
运行服务器时,出现以下错误:
raise IOError(errno.EROFS, 'Read-only file system', filename)
IOError: [Errno 30] Read-only file system: u'file.pdf'
您不能写入appengine文件系统——毕竟,由于您有多台机器(并且您不能一直看到相同的机器),您将写入哪台机器的文件系统 但是,reportlab画布似乎接受打开的文件对象。我不能保证这会起作用,但您可以尝试传递一个类似对象的打开文件。e、 甚至
webapp2.Response.out
import io
class pdf(webapp2.RequestHandler):
def get(self):
x = 50
y = 750
c = canvas.Canvas(self.response.out)
c.drawString(x*5,y,"Output")
c.line(x,y-10,x*11,y-10)
c.save()
您不能写入appengine文件系统——毕竟,由于您有多台机器(并且您不能一直看到相同的机器),您将写入哪台机器的文件系统 但是,reportlab画布似乎接受打开的文件对象。我不能保证这会起作用,但您可以尝试传递一个类似对象的打开文件。e、 甚至
webapp2.Response.out
import io
class pdf(webapp2.RequestHandler):
def get(self):
x = 50
y = 750
c = canvas.Canvas(self.response.out)
c.drawString(x*5,y,"Output")
c.line(x,y-10,x*11,y-10)
c.save()
我使用以下方法使其工作:
我使用以下方法使其工作:
嗯。。。对不起,我指的是
webapp2.Response
对象,而不是webapp2.Request
对象……无论如何,这是正确的方法,即使您可以写入文件系统。否则,如果您同时有多个PDF请求,会发生什么情况呢。。。对不起,我指的是webapp2.Response
对象,而不是webapp2.Request
对象……无论如何,这是正确的方法,即使您可以写入文件系统。否则,如果您同时有多个PDF请求,会发生什么情况?