【发布时间】:2015-04-16 12:44:20
【问题描述】:
我使用django-imagekit处理上传图片,遇到如下错误:
AttributeError at /car/7/
'cStringIO.StringO' object has no attribute 'fileno'
Request Method: GET
Request URL: http://luxingnan.azurewebsites.net/car/7/
Django Version: 1.8
Exception Type: AttributeError
Exception Value:
'cStringIO.StringO' object has no attribute 'fileno'
Exception Location: D:\home\site\wwwroot\env\Lib\site-packages\pilkit\utils.py in
__enter__, line 248
Python Executable: D:\Python27\python.exe
Python Version: 2.7.8
Python Path:
[u'D:\\home\\site\\wwwroot\\env\\Lib\\site-packages', '.', 'D:\\Windows\\SYSTEM32\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python27', 'D:\\Python27\\lib\\site-packages', 'D:\\home\\site\\wwwroot']
Server time: Thu, 16 Apr 2015 12:28:26 +0000
下面是我的代码:
# models.py
class Carpic(models.Model):
picture = models.ImageField('pic',upload_to='car-pictures')
picture_slide = ImageSpecField(source='picture',
processors=[ResizeToFill(762, 456)],
format='JPEG',
options={'quality': 60}
)
# template.html
{% for pic in pictures %}
<li><img src="{{pic.picture_slide.url}}"/></li>
{% endfor %}
谁能告诉我该怎么做?谢谢
【问题讨论】:
-
这个错误与pilkit图像处理包有关,我跟踪了一些研究发现问题与pilkit/utils.py中的FileWrapper类试图调用fileno()有关一个 StringIO 实例,这个 SO 答案提供了详细的解释 stackoverflow.com/a/5903627/4724196
-
尝试在这里github.com/matthewwithanm/pilkit/issuesgithub.com/matthewwithanm/pilkit/issues在 pilkit 的 repo 中打开一个问题
-
奇怪的是在本地环境中一切都很好。但是在我将它部署到 Azure 之后,它给了我这个错误
-
你是在linux环境下开发还是在windows上开发?
-
@HassenPy 谢谢哈森。相反,我尝试了 Heroku,现在一切正常。我想这可能是 Azure 的问题
标签: python django django-imagekit