最新版本的 wxPython 不支持 wxversion 模块。相反,信息以 wx.version 的形式提供。
有什么建议的解决方法吗?谢谢!
我的环境是 Ubuntu 20.04 LTS、pyenv、python 3.8.3、python 2.7.18、wxPython 4.1.0
$ apt-cache policy playonlinux
playonlinux:
Installed: 4.3.4-1ubuntu1
Candidate: 4.3.4-1ubuntu1
Version table:
*** 4.3.4-1ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
500 http://us.archive.ubuntu.com/ubuntu focal/multiverse i386 Packages
100 /var/lib/dpkg/status
$ which playonlinux
/usr/bin/playonlinux
# *** note: i'm using pyenv ***
$ pyenv local 2.7.18
$ which python2
/home/dever/.pyenv/shims/python2
$ python2 -V
Python 2.7.18
$ pyenv local 3.8.3
$ which python3
/home/dever/.pyenv/shims/python3
$ python3 -V
Python 3.8.3
安装的 Python 3.8.3 配置有 wxPython 4.1.0
$ python
Python 3.8.3 (default, Jul 16 2020, 20:35:40)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> print(wx.version)
<function version at 0x7ff77d3cbd30>
>>> print(wx.version())
4.1.0 gtk3 (phoenix) wxWidgets 3.1.4
>>> quit()
因此,playonlinux 命令失败并出现以下错误:
$ playonlinux
Looking for python... 3.8.3 - skipped
Looking for python2.7... 2.7.18 - Traceback (most recent call last):
File "/usr/share/playonlinux/python/check_python.py", line 1, in <module>
import os, wxversion
ImportError: No module named wxversion
failed tests
Looking for python2.6...
Looking for python2... 2.7.18 - Traceback (most recent call last):
File "/usr/share/playonlinux/python/check_python.py", line 1, in <module>
import os, wxversion
ImportError: No module named wxversion
failed tests
Please install python before trying to run this program
注意:对于那些因为 GTK+ 错误而在 Ubuntu 20.04 LTS 上安装 wxPython 的人*** Could not run GTK+ test program, checking why...
试试这个命令(在这里找到:https ://wxpython.org/pages/downloads/ )
pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04 wxPython
有关其他上下文,另请参阅:https ://discuss.wxpython.org/t/where-to-obtain-wxversion-py/28752
playonlinux 最初安装如下,但在 Ubuntu 20.04 LTS(我从 19.10 升级)上重新安装了标准存储库:
我正在运行的 playonlinux 版本适用于从此处下载的 Ubuntu 18.04(仿生版本):https ://www.playonlinux.com/en/download.html
For the Bionic version
Type the following commands:
wget -q "http://deb.playonlinux.com/public.gpg" -O- | sudo apt-key add -
sudo wget http://deb.playonlinux.com/playonlinux_bionic.list -O /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update
sudo apt-get install playonlinux
也许 playonlinux 被 flatpak 版本取代了?
查看https://www.playonlinux.com上的 Github 链接会将您带到https://github.com/PhoenicisOrg/,这表明解决方案可能是迁移到 flatpak 版本:
简短回答:问题与pyenv有关,请确保
system
在全局配置中是首选:pyenv global system
或使用pyenv shell system
. 如果你使用global
你只设置一次。简短说明:用于
pyenv global system (2nd) (3rd)...
确保 playonlinux 找到正确的 python;其中 (2nd) 和 (3rd) 是您安装的解释器的 pyenv 版本号。长解释:在@N0bert 的真正有用的帖子拉开帷幕后,我发现在我的情况下,问题与pyenv 相关。
pyenv global
具体来说,我可以通过使用命令解决我的问题,system
首先如下(注意:您执行的命令将取决于您安装的python版本):为了进一步调查问题,我查看了以下文件:
/usr/share/playonlinux/bash/find_python
/usr/share/playonlinux/python/check_python.py
我自己制作了这些副本以更好地理解错误。事实证明wxversion 错误确实具有误导性,真正的问题是找到正确的 python shell 来运行。
playonlinux
取决于系统python。最初我认为运行
pyenv local system
pyenv 可以解决问题,但由于 pyenv 的工作方式,情况并非如此。为确保
/usr/share/playonlinux/bash/find_python
解析到系统安装的 python,您必须确保将pyenv global
其设置system
为首选。非常感谢@N0rbert !!
您只需从官方存储库安装最新的 PlayOnLinux 4.3.4
它将依赖于 Python 2,因为它被设计为.
使用依赖项安装 PlayOnLinux 的完整命令如下:
(从上面的命令你可以看到两个 wx 相关的包 -
python-wxgtk3.0 python-wxversion
被列出)