使用 apt-get 安装旧版本的 python 软件包(特别是 wxpython)

使用 apt-get 安装旧版本的 python 软件包(特别是 wxpython)

我一直在绞尽脑汁地尝试对带有 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 提供的软件更新的版本?。您在这里尝试做的并不完全是向后移植,但它是相似的。

  1. 检查 Ubuntu 是否在最近的版本中碰巧有 2.8.10 版本。如果是这样,您可以尝试在系统上重建它。如果没有,您将需要以困难的方式做到这一点。
  2. 下载wxPython 2.8.12的源码。

    apt-get source python-wxgtk2.8
    

    wxwidgets2.8这将为您下载源代码。这假设deb-src中存在适当的行/etc/apt.sources.list

  3. 获取 wxPython 的上游版本,解压它,然后从Debian/Ubuntu 源2.8.10复制 Debian 目录。wxwidgets2.8您需要重命名 tarball 以符合 Debian 命名方案,并更新 Debian 变更日志。如果你能做到这一点,那你就很好了。我通常使用的构建命令是

    debuild -uc -us
    

    debuild从包装中使用devscripts。您可能需要安装一些构建依赖项。您可以先运行 dpkg-checkbuilddeps来检查构建依赖关系情况。

  4. 另一种方法是使用来自 http://snapshot.debian.org/package/wxwidgets2.8/。这些适用于 Debian,但可能也适用于 Ubuntu 系统。这些是 Debian 源,你可以直接重建它们。

注意:如果你成功安装了2.8.10,你可能需要做一些事情来阻止 apt 和朋友将 wxPython 升级回2.8.12.有不同的方法可以做到这一点,但一个简单而有效的方法是使用纪元。但如果重建工作成功,这个细节是可以解决的。

相关内容