在 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。
pip3 search zenity
结果:
python-zenity (0.1.3) - Simple dialog with Python and Gtk
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
pip3 list | grep zenity
结果:
python-zenity 0.1.3
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.
>>>
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
起作用),等等。
导入 pip3 告诉我已成功安装的 python-zenity
库的 "trick" 是什么?
编辑:
根据 metatoaster 的回答,卸载了 python-zenity,安装了 zenipy。 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']
>>>
异常消息实际上是由包本身生成的 - 它的 __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.
安装当前版本的软件包
Python 3.5.2,Mint Linux 32 位。
我已经按照此处的文档 -- https://pypi.org/project/python-zenity/#example -- 并尝试了其中的变体,但无法将 zenity 库导入 Python 3。
pip3 search zenity
结果:python-zenity (0.1.3) - Simple dialog with Python and Gtk
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
pip3 list | grep zenity
结果:python-zenity 0.1.3
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.
>>>
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
起作用),等等。
导入 pip3 告诉我已成功安装的 python-zenity
库的 "trick" 是什么?
编辑:
根据 metatoaster 的回答,卸载了 python-zenity,安装了 zenipy。 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']
>>>
异常消息实际上是由包本身生成的 - 它的 __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.
安装当前版本的软件包