Bug 35052 - import Image: Attempted relative import in non-package
Summary: import Image: Attempted relative import in non-package
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: python-module-Pillow (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-17 20:09 MSK by Vitaly Lipatov
Modified: 2018-07-19 16:04 MSK (History)
20 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2018-06-17 20:09:02 MSK
$ python
impPython 2.7.14 (default, May 31 2018, 14:35:46) 
[GCC 7.3.1 20180303 (ALT 7.3.1-alt4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Image
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 27, in <module>
    from . import VERSION, PILLOW_VERSION, _plugins
ValueError: Attempted relative import in non-package
>>>
Comment 1 Vitaly Lipatov 2018-06-17 20:21:22 MSK
Пример использования такой:
try:
    from PIL import Image
    dir(Image) # Placate PyFlakes
except ImportError:
    import Image

Ошибка воспроизводится при ошибке загрузки PIL — идёт сваливание в workaround, который с Pillow не работает.
Comment 2 Grigory Ustinov 2018-06-26 15:27:02 MSK
$ imgv
imgv running in python2.4 doesn't support MPEG MOVIES on your platform currently
Traceback (most recent call last):
  File "/usr/share/imgv/imgv.py", line 28, in <module>
    from handle_keyboard import handle_keyboard
  File "/usr/share/imgv/handle_keyboard.py", line 17, in <module>
    from verbose import command_verbose_info
  File "/usr/share/imgv/verbose.py", line 15, in <module>
    import Image # PIL
  File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 27, in <module>
    from . import VERSION, PILLOW_VERSION, _plugins
ValueError: Attempted relative import in non-package

Опять Pillow портит пакеты.
Comment 3 Vitaly Lipatov 2018-07-01 23:55:23 MSK
(В ответ на комментарий №2)
> $ imgv
> imgv running in python2.4 doesn't support MPEG MOVIES on your platform
> currently
> Traceback (most recent call last):
>   File "/usr/share/imgv/imgv.py", line 28, in <module>
>     from handle_keyboard import handle_keyboard
>   File "/usr/share/imgv/handle_keyboard.py", line 17, in <module>
>     from verbose import command_verbose_info
>   File "/usr/share/imgv/verbose.py", line 15, in <module>
>     import Image # PIL
>   File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 27, in <module>
>     from . import VERSION, PILLOW_VERSION, _plugins
> ValueError: Attempted relative import in non-package
> 
> Опять Pillow портит пакеты.
Как ни странно, он вообще не совместим с PIL при подключении, поэтому старые пакеты надо пропатчить или выкинуть.

То, что import Image как-то работало, было ошибкой, удалю в следующей сборке.
Предлагается подключать так:
from PIL import Image
Comment 4 Vitaly Lipatov 2018-07-03 10:13:22 MSK
(В ответ на комментарий №2)
> $ imgv
> imgv running in python2.4 doesn't support MPEG MOVIES on your platform
> currently
> Traceback (most recent call last):
>   File "/usr/share/imgv/imgv.py", line 28, in <module>
>     from handle_keyboard import handle_keyboard
>   File "/usr/share/imgv/handle_keyboard.py", line 17, in <module>
>     from verbose import command_verbose_info
>   File "/usr/share/imgv/verbose.py", line 15, in <module>
>     import Image # PIL
>   File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 27, in <module>
>     from . import VERSION, PILLOW_VERSION, _plugins
> ValueError: Attempted relative import in non-package
> 
> Опять Pillow портит пакеты.
Это была ошибка в его сборке, что он вообще предоставляет модули Image*.
Исправил это и собрал python-module-PIL-compat (обёртку вокруг Pillow), который позволяет таким старым программам работать.
Comment 5 Grigory Ustinov 2018-07-19 16:04:59 MSK
(В ответ на комментарий №4)
> (В ответ на комментарий №2)
> > $ imgv
> > imgv running in python2.4 doesn't support MPEG MOVIES on your platform
> > currently
> > Traceback (most recent call last):
> >   File "/usr/share/imgv/imgv.py", line 28, in <module>
> >     from handle_keyboard import handle_keyboard
> >   File "/usr/share/imgv/handle_keyboard.py", line 17, in <module>
> >     from verbose import command_verbose_info
> >   File "/usr/share/imgv/verbose.py", line 15, in <module>
> >     import Image # PIL
> >   File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 27, in <module>
> >     from . import VERSION, PILLOW_VERSION, _plugins
> > ValueError: Attempted relative import in non-package
> > 
> > Опять Pillow портит пакеты.
> Это была ошибка в его сборке, что он вообще предоставляет модули Image*.
> Исправил это и собрал python-module-PIL-compat (обёртку вокруг Pillow), который
> позволяет таким старым программам работать.

imgv заработал! Спасибо!