在 Python 3.5 中,无法导入 zenity

In Python 3.5, can't import zenity

Python 3.5.2,Mint Linux 32 位。

我已经按照此处的文档 -- 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-zenitypython_zenityfrom pythonzenity import * 的变体(只是为了让 import 起作用),等等。

导入 pip3 告诉我已成功安装的 python-zenity 库的 "trick" 是什么?


编辑:

根据 metatoaster 的回答,卸载了 python-zenity,安装了 zenipyimport 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']
>>> 

异常消息实际上是由包本身生成的 - 它的 __init__.py 定义了一个相对导入 is no longer supported。如果您不介意手动更正其中的语句(根据 Traceback/usr/local/lib/python3.5/dist-packages/pythonzenity/__init__.py,请将 import * 行更改为:

 from .python_zenity import *

哪个应该触发导入。

或者,参考链接的 Git 存储库,它实际上更改了包名称,并且现在通过 the same __init__.py file.

中正确的相对导入语法完成导入语句。

更好的解决方案是以新名称 zenipy.

安装当前版本的软件包