【问题标题】:Install wxPython in osx 10.11在 osx 10.11 中安装 wxPython
【发布时间】:2016-03-27 22:02:33
【问题描述】:

当我尝试安装 wxPython 时,它显示错误:

> The Installer could not install the software because there was no
> software found to install.

我该如何解决?

【问题讨论】:

标签: python macos wxpython


【解决方案1】:

以下是我成功用于安装 wxPython 'Classic'(不是 'Phoenix')的步骤。
OSX 10.11 或更新版本无法运行您尝试过的安装程序,但此方法可以使用。

  1. 将这两个最新的源拉到两个同级目录中:
    https://github.com/wxWidgets/wxPython.git
    https://github.com/wxWidgets/wxWidgets.git
    (2015 年 12 月 16 日之前的来源不适用于此方法)
  2. 更改目录cd /pathToYourGitHubSources/wxPython 并运行以下命令:
    python build-wxpython.py --build_dir=../bld --osx_cocoa --install
  3. 构建和安装需要一段时间。完成后,您可以尝试 import wx,但可能首先需要以下步骤。
  4. 查看新创建的installed_files.txt,查看wxPython*文件所在的目录,以及/wx/*.py/lib/*.pyc文件的位置。这三个目录大概是这样的:
    /usr/lib/python2.7/site-packages
    /usr/lib/python2.7/site-packages/wx
    /usr/lib/python2.7/site-packages/wx/lib
  5. 从终端命令行设置环境并测试wx:

    export PYTHONPATH='/usr/lib/python2.7/site-packages/wx'
    export DYLD_LIBRARY_PATH='/usr/lib/python2.7/site-packages/wx/lib'
    
    python
    
    import sys
    import wxversion
    try:
        wxversion.select(['3.0.3'])
    except wxversion.VersionError:
        print "wx version failed detection"
        sys.path.insert(0, '/usr/lib/python2.7/site-packages')
    
    import wx
    print wx.version()
    

如果打印了 wx 版本,它就可以工作了。
一些系统安装了其他版本的 wxPython 或旧 wxPythons 的痕迹,这导致我需要设置如上所示的环境,直到旧部件从系统中清除。

【讨论】:

    【解决方案2】:

    wxPython 正在使用legacy script,据此technical note 捆绑安装程序已被弃用并且(自 El Capitan 版本起)不受支持:

    Bundle 样式的安装程序包是一种旧的过渡辅助工具,不再受支持。 PackageMaker 也不再受支持。现在需要使用 productbuild 等工具转换为平面文件安装程序包。

    这让你有两个选择,

    1. 将安装程序转换为平面包。
    2. 编译 wxWidgets 并安装到本地。

    要实现前者,请按照以下说明操作:

    0) 假设您已经挂载了dmg,并且您已将pkg 文件夹移动到工作地点

    cd ~/repack_wxpython
    cp -r /Volumes/wxPython/wxPython-ABC.pkg .
    

    1) 使用 pax 实用程序将负载文件 (pax.gz) 从 Contents/Resources 提取到将成为新软件包根目录的文件夹中。

    mkdir pkg_root
    cd pkg_root
    pax -f ../wxPython-ABC.pkg/Contents/Resources/wxPython-ABC.pax.gz -z -r
    cd ..
    

    2) 将捆绑包的 preflight/postflight 脚本重命名为 preinstall/postinstall 脚本,根据平面包的要求,在脚本文件夹中。

    mkdir scripts
    cp wxPython-ABC.pkg/Contents/Resources/preflight scripts/preinstall
    cp wxPython-ABC.pkg/Contents/Resources/postflight scripts/postinstall
    

    3) 使用pkgbuild 工具创建平面包:

    pkgbuild --root ./pkg_root --scripts ./scripts --identifier com.wxwidgets.wxpython wxPython-ABC.pkg
    

    这是documentation of the pkbuild command,以防您想自定义传递的参数。

    注意事项:原始捆绑包包含一个 License.rtf 和一个 Welcome.txt 文件,这些文件未包含在平面包中。这些需要通过定义custom XML 文件并使用the productbuild 命令创建另一个包来添加。

    【讨论】:

    • 还有莫哈韦沙漠
    • 最后一个命令应该是pkgbuild --root ./pkg_root --scripts ./scripts --identifier com.wxwidgets.wxpython wxPython-ABC-flat.pkg。刚把wxPython-ABC.pkg改成wxPython-ABC-flat.pkg
    【解决方案3】:

    我发布了一个关于从源代码构建的答案,@memoselyk 发布了一个有用的答案,关于如何将包转换为安装在较新的 OSX 上。 但是,我发现简单的解决方案是使用Brew package manager
    以下是我使用的步骤。

    • 使用以下命令安装 Brew:
      • ruby -e "$(curl -fsSL \ https://raw.githubusercontent.com/Homebrew/install/master/install)"
    • 安装 wx; (也将安装依赖项)
      • brew install wxpython --framework

    测试错误: python -c 'import wx'

    已完成,但以下内容也可能是相关的。

    • 我多次运行以下命令来清除旧安装并确保我能够导入正确的 wx:
      • sudo pip uninstall wxPython
      • sudo pip uninstall wxPython-Phoenix
    • 我删除了添加的系统环境变量,以使以前的一些安装工作正常。
      • unset PYTHONPATH
      • unset DYLD_LIBRARY_PATH
      • unset DYLD_FRAMEWORK_PATH

    安装 wx 后,如果是脏安装,您可能需要运行以下命令:
    - brew link --overwrite wxmac
    - brew doctor wxPython(如果检测到某些东西,请遵循非常有用的指示)

    如果您想访问其他构建,这不是适合您的方法,但对于 3.0.2.0 'Classic' 版本,我认为这是要走的路。
    brew upgrade wxPython 会达到更新的版本,如果有的话。

    【讨论】:

      【解决方案4】:

      Mac 版 wxpython 的工作安装程序似乎在预发行版中可用:

      https://groups.google.com/forum/#!topic/wxpython-dev/TMnoeAgf2Wg

      这似乎对我有用。为 El Capitan 工作。

      【讨论】:

      • 先贴出你的答案和推荐人,
      【解决方案5】:

      这对我有用 (10.11.16):

         sudo pip install --upgrade --trusted-host wxpython.org --pre -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix 
      

      How to properly install wxPython?

      【讨论】:

        【解决方案6】:

        对我来说,它只需使用 brew:

        brew install wxpython
        

        我很惊讶没有其他人发布相同的答案!

        PS:我在 El Capitan,10.11.3

        【讨论】:

        【解决方案7】:

        找到了解决这个问题的方法:

        错误:

        mac01:tools ganeshr$ride.py

        wxPython 版本错误。 您需要安装支持 unicode 的 wxPython 2.8.12.1 才能运行 RIDE。 wxPython 2.8.12.1 可以下载

        解决方案:- 在 robotide/__init__.py 中添加 supported_versions.append("3.0") 支持

        检查 wxPython 是否已安装:

        $点列表

        wxPython (3.0.2.0) wxPython-common (3.0.2.0)

        $ sudo vim /Library/Python/2.7/site-packages/robotide/__init__.py

        尝试: 导入 wxversion

        从 wxversion 导入版本错误

        如果 sys.platform == 'darwin':

        supported_versions.append("2.9")

        supported_versions.append("3.0") # 添加这一行,RIDE 将支持 wxPython (3.0.2.0)

        wxversion.select(supported_versions) 导入wx

        谢谢。

        【讨论】:

        • 感谢这个技巧。这在机器人框架和 RIDE 的上下文中非常有意义
        猜你喜欢
        • 2019-12-15
        • 1970-01-01
        • 2015-10-12
        • 2016-02-02
        • 2016-06-08
        • 1970-01-01
        • 2016-06-24
        • 2016-02-05
        • 1970-01-01
        相关资源
        最近更新 更多