$ 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 >>>
Пример использования такой: try: from PIL import Image dir(Image) # Placate PyFlakes except ImportError: import Image Ошибка воспроизводится при ошибке загрузки PIL — идёт сваливание в workaround, который с Pillow не работает.
$ 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 портит пакеты.
(В ответ на комментарий №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
(В ответ на комментарий №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), который позволяет таким старым программам работать.
(В ответ на комментарий №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 заработал! Спасибо!