Как можно импортировать модуль uno?

#python #libreoffice #uno

Вопрос:

 python3
Python 3.9.6 (default, Jul 14 2021, 09:15:03) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import uno
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/uno/__init__.py", line 4, in <module>
    from base import Element, Css, Payload, UnoBaseFeature, UnoBaseField
ImportError: cannot import name 'Element' from 'base' (/usr/local/lib/python3.9/site-packages/base/__init__.py)
>>> 
 

Проверьте файлы uno .

 ls  /usr/local/lib/python3.9/site-packages/uno
base.py  constants.py  core.py  css_constants.py  decorators.py  field.py  form.py  helpers.py  __init__.py  input_elements.py  __pycache__  quickadder.py  search.py
 

Он пуст в файле.

 ls -al /usr/local/lib/python3.9/site-packages/base/__init__.py
-rw-r--r-- 1 root root 0 Jun 23  2016 /usr/local/lib/python3.9/site-packages/base/__init__.py
 

Зафиксируйте линию /usr/local/lib/python3.9/site-packages/uno/__init__.py .

 from .base import Element, Css, Payload, UnoBaseFeature, UnoBaseField
 

Повторный импорт снова:

 python3
Python 3.9.6 (default, Jul 14 2021, 09:15:03) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import uno
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/uno/__init__.py", line 4, in <module>
    from .base import Element, Css, Payload, UnoBaseFeature, UnoBaseField
  File "/usr/local/lib/python3.9/site-packages/uno/base.py", line 129
    print 'new css', self._attr, 'value:', value
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('new css', self._attr, 'value:', value)?
 

Модуль uno написан с python2 помощью .
Теперь нужно установить uno, поддерживаемый python3.

 debian@debian:~$ sudo apt install python3-uno
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-uno is already the newest version (1:6.1.5-3 deb10u7).
0 upgraded, 0 newly installed, 0 to remove and 47 not upgraded.
debian@debian:~$ python3
Python 3.9.6 (default, Jul 14 2021, 09:15:03) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import python3-uno
  File "<stdin>", line 1
    import python3-uno
                  ^
SyntaxError: invalid syntax
>>> import uno
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/uno/__init__.py", line 4, in <module>
    from .base import Element, Css, Payload, UnoBaseFeature, UnoBaseField
  File "/usr/local/lib/python3.9/site-packages/uno/base.py", line 129
    print 'new css', self._attr, 'value:', value
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('new css', self._attr, 'value:', value)?
 

Как можно импортировать python3-uno то, что я уже установил тогда?

Комментарии:

1. Ты смотришь на .../base/__init__.py , нет .../uno/base.py . Они совершенно не связаны. Это похоже на конфликт имен. Они должны были сказать from .base import ...