python:为什么File对象不能被pickle?

时间:2012-12-28 02:07:24

标签: python django

我试图理解为什么发送django InMemoryUploadedFile对象作为芹菜任务Can't pickle <type 'cStringIO.StringO'>: attribute lookup cStringIO.StringO failed的参数发送时不能被腌制。所以我尝试了File对象,但效果不好,但StringIO可行。

需要一些假人的指导来理解3之间的区别。

谢谢!

1 个答案:

答案 0 :(得分:4)

Python不允许腌制某些函数,因为如果允许的话会出现安全问题。 (这取决于 - 有办法通过参考来挑选一些功能)

已经在python的feature线程中多次请求了pickle文件对象,最好的理由是因为它允许运行时注入潜在的恶意事件,从而为python的安全进程打开了额外的hack向量。

以多种方式使用会非常方便,但这似乎是一种安全限制。