在Python 3.5中,无法导入zenity。

3

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
    输入 "help", "copyright", "credits" 或者 "license" 来获取更多信息。
    >>>

  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 正常工作)等的变化。

导入 python-zenity 库的“诀窍”是什么,而 pip3 告诉我已经成功安装了它?


编辑:

根据 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']
>>> 
1个回答

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

应该触发导入。

或者,参考链接的Git存储库实际上更改了包名称,并且现在通过适当的相对导入语法在同一__init__.py文件中完成导入语句。

更好的解决方案是安装该软件包的当前版本,其新名称为zenipy


我编辑了我的问题,加入了卸载python-zenity并安装zenipy后,我能够直接导入zenipy的内容。 - RBV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接