Issues caused by Python Imaging Library on Ubuntu

Bug #1256962 reported by sdia
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Odoo Addons (MOVED TO GITHUB)
Invalid
Undecided
Unassigned

Bug Description

I was trying to install a new app from openerp dashboard when I had the following error.
The problem is caused by the Python Imaging Library (PIL).
I suggest the replacement of python-pil by python-pillow , a fork, alternative re-packaging of PIL.

My plateform
    * ubuntu 13.04
    * python 2.7 (with virtualenv)

The error:

Server Traceback (most recent call last):
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/addons/web/session.py", line 89, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/netsvc.py", line 292, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/service/web_services.py", line 626, in dispatch
    res = fn(db, uid, *params)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/osv/osv.py", line 188, in execute_kw
    return self.execute(db, uid, obj, method, *args, **kw or {})
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/osv/osv.py", line 131, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/osv/osv.py", line 197, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/osv/osv.py", line 185, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/addons/base/module/module.py", line 424, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/addons/base/module/module.py", line 475, in _button_immediate_function
    _, pool = pooler.restart_pool(cr.dbname, update_module=True)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/pooler.py", line 39, in restart_pool
    registry = RegistryManager.new(db_name, force_demo, status, update_module)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/modules/registry.py", line 219, in new
    openerp.modules.load_modules(registry.db, force_demo, status, update_module)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/modules/loading.py", line 354, in load_modules
    loaded_modules, update_module)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/modules/loading.py", line 256, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/modules/loading.py", line 188, in load_module_graph
    load_data(module_name, idref, mode)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/modules/loading.py", line 76, in <lambda>
    load_data = lambda *args: _load_data(cr, *args, kind='data')
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/modules/loading.py", line 124, in _load_data
    tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/tools/convert.py", line 954, in convert_xml_import
    obj.parse(doc.getroot())
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/tools/convert.py", line 847, in parse
    self._tags[rec.tag](self.cr, rec, n)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/tools/convert.py", line 814, in _tag_record
    id = self.pool.get('ir.model.data')._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/addons/base/ir/ir_model.py", line 967, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/addons/mail/mail_group.py", line 137, in create
    mail_group_id = super(mail_group, self).create(cr, uid, vals, context=context)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/addons/mail/mail_thread.py", line 243, in create
    thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/osv/orm.py", line 4494, in create
    self.pool.get(object)._store_set_values(cr, user, ids, fields2, context)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/osv/orm.py", line 4621, in _store_set_values
    result = self._columns[val[0]].get(cr, self, ids, val, SUPERUSER_ID, context=context)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/osv/fields.py", line 1139, in get
    result = self._fnct(obj, cr, uid, ids, name, self._arg, context)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/addons/mail/mail_group.py", line 41, in _get_image
    result[obj.id] = tools.image_get_resized_images(obj.image)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/tools/image.py", line 165, in image_get_resized_images
    return_dict[medium_name] = image_resize_image_medium(base64_source, avoid_if_small=avoid_resize_medium)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/tools/image.py", line 103, in image_resize_image_medium
    return image_resize_image(base64_source, size, encoding, filetype, avoid_if_small)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/openerp-7.0_20131202_002354-py2.7.egg/openerp/tools/image.py", line 88, in image_resize_image
    image.save(background_stream, filetype)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/PIL/Image.py", line 1406, in save
    self.load()
  File "/home/openerp/venv/local/lib/python2.7/site-packages/PIL/ImageFile.py", line 189, in load
    d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
  File "/home/openerp/venv/local/lib/python2.7/site-packages/PIL/Image.py", line 385, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder zip not available

Revision history for this message
sdia (sdia) wrote :

Actually just changing 'PIL' to 'Pillow' in setup.py made it ! Indeed the code base is already ready to use Pillow

Revision history for this message
Twinkle Christian(OpenERP) (tch-openerp) wrote :

Hello Sdia,

Please let me know that, which app you were trying to install ? I tried same but I am not getting any issue with this. Its working fine at my end.

For more reference, http://help.openerp.com/question/14434/ioerror-decoder-zip-not-available/

Platform :
    Ubuntu 12.04

Waiting for you answer ..!!
Regards,

Changed in openobject-addons:
status: New → Incomplete
Revision history for this message
sdia (sdia) wrote :

Hi Christian,

I was trying to install CRM. As I mentionned earlier my platform is Ubuntu 13.04 + Python2.7 virtualenv.
The solution I have mentionned works for me. Since in the Python community Pillow is known to be better than PIL I think it is a good idea to get rid of PIL. I have checked openerp source code and it is Pillow compatible.

Regards,
Seydou.

Revision history for this message
Twinkle Christian(OpenERP) (tch-openerp) wrote :

Hi..

Thanks for your answer ..!!

As per your comment #3 , I am closing this issue.

Regards.

Changed in openobject-addons:
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.