我一直在绞尽脑汁地尝试对带有 WX 后端的图形程序进行故障排除。我们发现 wxPython2.8.10
工作正常,但似乎任何新版本都不能。尽管我收到了从源代码构建 wxPython 的所有帮助
https://stackoverflow.com/questions/27988150/how-to-get-wxpython-2-8-on-ubuntu/28031967#28031967
https://stackoverflow.com/questions/10457647/how-do-i-install-wxpython-in-virtualenv
构建过程失败了,我们尝试了列出的每一种方法。无论如何,我们发现建立一个到系统 python 的 wx 的符号链接工作得很好,但不幸的是apt-get install
给我们留下了2.8.12
.我的问题是如何获得apt-get install
旧版本的 wxpython 或任何与此相关的软件包?
我使用的是 Ubuntu MATE 14.04,但已验证此问题发生在 OSX 和 Ubuntu 12 上,因此这可能不是与操作系统相关的问题。
答案1
由于您似乎在从源代码编译时遇到问题,为什么不直接从 Ubuntu 存储库安装该软件包呢?
如果您搜索http://packages.ubuntu.com/对于wxPython
所有版本,你会得到这个结果并根据包 python-wxversion在该页面的标题上您会发现:
清晰更新(python): wxWidgets跨平台C++ GUI工具包(wxPython版本选择器)[universe]2.8.10.1-0ubuntu1.2: 全部
在该页面上,单击全部按钮,手动下载软件包并安装sudo dpkg --install python-wxversion_2.8.10.1-0ubuntu1.2_all.deb
警告
直接从存储库安装 .deb 文件,将要echo python-wxversion hold | sudo dpkg --set-selections
这些软件包由 Ubuntu 软件更新程序自动更新,因此在您费尽心思安装后不要忘记将其保持在该版本!
答案2
下面是如何用 2.8.10 替换 wxPython 2.8.12 的示意图。这会大概工作,但没有实际尝试,我不能确定。
您可能会发现这个问题/答案可以作为参考: 如何安装比 Debian 提供的软件更新的版本?。您在这里尝试做的并不完全是向后移植,但它是相似的。
- 检查 Ubuntu 是否在最近的版本中碰巧有 2.8.10 版本。如果是这样,您可以尝试在系统上重建它。如果没有,您将需要以困难的方式做到这一点。
下载wxPython 2.8.12的源码。
apt-get source python-wxgtk2.8
wxwidgets2.8
这将为您下载源代码。这假设deb-src
中存在适当的行/etc/apt.sources.list
。获取 wxPython 的上游版本,解压它,然后从Debian/Ubuntu 源
2.8.10
复制 Debian 目录。wxwidgets2.8
您需要重命名 tarball 以符合 Debian 命名方案,并更新 Debian 变更日志。如果你能做到这一点,那你就很好了。我通常使用的构建命令是debuild -uc -us
debuild
从包装中使用devscripts
。您可能需要安装一些构建依赖项。您可以先运行dpkg-checkbuilddeps
来检查构建依赖关系情况。另一种方法是使用来自 http://snapshot.debian.org/package/wxwidgets2.8/。这些适用于 Debian,但可能也适用于 Ubuntu 系统。这些是 Debian 源,你可以直接重建它们。
注意:如果你成功安装了2.8.10
,你可能需要做一些事情来阻止 apt 和朋友将 wxPython 升级回2.8.12
.有不同的方法可以做到这一点,但一个简单而有效的方法是使用纪元。但如果重建工作成功,这个细节是可以解决的。