В Python 3.5 нельзя импортировать zenity - PullRequest
0 голосов
/ 13 февраля 2019

Python 3.5.2, Mint Linux 32-bit.

Я следил за документацией здесь - https://pypi.org/project/python-zenity/#example - и пробовал ее варианты, НО не могу импортировать zenity библиотека в Python 3.

  1. pip3 search zenity РЕЗУЛЬТАТ:

    python-zenity (0.1.3) - Simple dialog with Python and Gtk

  2. sudo -H pip3 install python-zenity РЕЗУЛЬТАТ:

    Collecting python-zenity Installing collected packages: python-zenity Running setup.py install for python-zenity ... done Successfully installed python-zenity-0.1.3

  3. pip3 list | grep zenity РЕЗУЛЬТАТ:

    python-zenity 0.1.3

  4. python3 РЕЗУЛЬТАТ:

    Python 3.5.2 (default, Nov 12 2018, 13:43:14)
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

  5. import pythonzenity РЕЗУЛЬТАТ:

    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/local/lib/python3.5/dist-packages/pythonzenity/__init__.py", line 1, in <module>
    from python_zenity import *
    ImportError: No module named 'python_zenity'

И варианты python-zenity, python_zenity, from pythonzenity import * (просто чтобы попытаться заставить import работать), ии так далее.

Что за хитрость при импорте библиотеки python-zenity, которую pip3 сообщает мне, что я успешно установлен?


РЕДАКТИРОВАТЬ:

Согласно ответу metatoaster, удалено pyththon-zenity , установкасветодиод зенипы .import zenipy работал сразу:

>>> import zenipy
>>> dir(zenipy)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'calendar', 'color_selection', 'entry', 'error', 'file_selection', 'message', 'password', 'question', 'scale', 'warning', 'zenipy', 'zlist']
>>> 

1 Ответ

0 голосов
/ 13 февраля 2019

Сообщение об исключении фактически генерируется самим пакетом - его __init__.py определяют относительный импорт, который больше не поддерживается .Если вы не возражаете вручную исправить оператор внутри (согласно Traceback) /usr/local/lib/python3.5/dist-packages/pythonzenity/__init__.py, измените строку import * на:

 from .python_zenity import *

, что должно вызвать импорт.

В качестве альтернативы, обратитесь к связанному Git-репозиторию, который фактически изменил имя пакета, и операторы импорта теперь выполняются с помощью соответствующего относительного синтаксиса импорта в того же __init__.py файла .

Лучшее решение - установить текущую версию пакета под новым именем zenipy .

...