Bug 34485 - Не работает импорт большей части модулей, предоставляемых в качестве provides
Summary: Не работает импорт большей части модулей, предоставляемых в качестве provides
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: python3-module-OpenGL (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Антон Мидюков
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-27 06:15 MSK by Антон Мидюков
Modified: 2018-01-28 18:51 MSK (History)
19 users (show)

See Also:


Attachments
Скрипты проверки импорта провайдесов python 2 и 3 (323 bytes, application/gzip)
2018-01-27 06:15 MSK, Антон Мидюков
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2018-01-27 06:15:16 MSK
Created attachment 7360 [details]
Скрипты проверки импорта провайдесов python 2 и 3

Я не буду приводить весь список, это 2009 не импортируемых модулей, представленных, как provides.
Вот пример неудачного импорта:
import OpenGL.platform.darwin
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/site-packages/OpenGL/platform/__init__.py", line 35, in <module>
    _load()
  File "/usr/lib/python3/site-packages/OpenGL/platform/__init__.py", line 26, in _load
    plugin_class = plugin.load()
  File "/usr/lib/python3/site-packages/OpenGL/plugins.py", line 16, in load
    return importByName( self.import_path )
  File "/usr/lib/python3/site-packages/OpenGL/plugins.py", line 38, in importByName
    module = __import__( ".".join(moduleName), {}, {}, moduleName)
  File "/usr/lib/python3/site-packages/OpenGL/platform/glx.py", line 4, in <module>
    from OpenGL.platform import baseplatform, ctypesloader
  File "/usr/lib/python3/site-packages/OpenGL/platform/baseplatform.py", line 354, in <module>
    class _NullFunctionPointer( object ):
  File "/usr/lib/python3/site-packages/OpenGL/platform/baseplatform.py", line 378, in _NullFunctionPointer
    __bool__ = __nonzero__
NameError: name '__nonzero__' is not defined

В тоже время у пакета python-module-OpenGL таких не рабочих импортов насчиталось  444. Правда не в чистом hasher проверял. Проверял сценариями от imz@, во вложении.
Конкретно мне очень нужны работающие импорты модулей OpenGL.GL, OpenGL.platform для новой версии pyCAM.

Возможно стоит попробовать обновить пакет до версии 3.3.1a1
Comment 1 Антон Мидюков 2018-01-27 09:24:18 MSK
Проверил в чистом hasher. У python-module-OpenGL 2007 неработающих provides, но все они ссылаются на то, что не может быть загружен модуль, например, так:
import OpenGL.platform.baseplatform
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/OpenGL/platform/__init__.py", line 35, in <module>
    _load()
  File "/usr/lib/python2.7/site-packages/OpenGL/platform/__init__.py", line 32, in _load
    plugin.install(globals())
  File "/usr/lib/python2.7/site-packages/OpenGL/platform/baseplatform.py", line 92, in install
    namespace[ name ] = getattr(self,name,None)
  File "/usr/lib/python2.7/site-packages/OpenGL/platform/baseplatform.py", line 14, in __get__
    value = self.fget( obj )
  File "/usr/lib/python2.7/site-packages/OpenGL/platform/glx.py", line 96, in GetCurrentContext
    return self.GL.glXGetCurrentContext
  File "/usr/lib/python2.7/site-packages/OpenGL/platform/baseplatform.py", line 14, in __get__
    value = self.fget( obj )
  File "/usr/lib/python2.7/site-packages/OpenGL/platform/glx.py", line 20, in GL
    raise ImportError("Unable to load OpenGL library", *err.args)
ImportError: ('Unable to load OpenGL library', 'GL: cannot open shared object file: No such file or directory', 'GL', None)

А у python3-module-OpenGL все ошибки касаются языка, например, вот такая ошибка:
import OpenGL.constant
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/site-packages/OpenGL/constant.py", line 3, in <module>
    from OpenGL._bytes import bytes,str,as_8_bit, int, integer_types, maxsize
ImportError: cannot import name 'int'

Я так понимаю, что текущая версия python3-module-OpenGL вообще не работает, так как python3 не поддерживается (или его текущая версия). Соответственно, пакет нужно обновлять.
Затем нужно определиться каких зависимостей не хватает пакетам python3-module-OpenGL и python-module-OpenGL.
Comment 2 Антон Мидюков 2018-01-27 18:37:03 MSK
Проблема вызвана преобразованием py2->py3. Но без этого преобразования python3-module не проходит проверку синтаксиса. Помогает обновление до 3.3.1a1. Но тесты в новой версии без этого преобразования также не проходят проверку синтаксиса. Если тесты после этого преобразования не будут работать, уберу их для python3 совсем.

Беру исправление бага на себя.

А недостающими зависимостями оказались пакеты mesa, libGL и компания.
Comment 3 Repository Robot 2018-01-28 18:51:11 MSK
python-module-OpenGL-3.1.1a1-alt1.S1 -> sisyphus:

Sat Jan 27 2018 Anton Midyukov <antohami@altlinux> 3.1.1a1-alt1.S1
- New version 3.1.1a1 (Closes: 34485)
- New subpackages python-module-tk and python3-module-tk