在osx 10.11中安装wxPython

Mar*_*510 8 python macos wxpython

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

> The Installer could not install the software because there was no
> software found to install.
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

mem*_*lyk 21

wxPython正在使用遗留脚本,根据此技术说明, 捆绑安装程序已弃用,并且(从El Capitan版本开始)不受支持:

捆绑式安装程序包是不再受支持的旧式转换辅助工具.PackageMaker也不再受支持.现在需要使用productbuild等工具转换为平面文件安装程序包.

这给你留下两个选择,

  1. 将安装程序转换为扁平包.
  2. 编译wxWidgets并在本地安装它.

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

0)假设您已经安装了,dmg并且已将pkg文件夹移动到工作位置.

cd ~/repack_wxpython
cp -r /Volumes/wxPython/wxPython-ABC.pkg .
Run Code Online (Sandbox Code Playgroud)

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 ..
Run Code Online (Sandbox Code Playgroud)

2)将脚本preflight/ postflight脚本重命名为脚本文件夹中平面包所需的preinstall/ postinstallscripts.

mkdir scripts
cp wxPython-ABC.pkg/Contents/Resources/preflight scripts/preinstall
cp wxPython-ABC.pkg/Contents/Resources/postflight scripts/postinstall
Run Code Online (Sandbox Code Playgroud)

3)使用该pkgbuild工具创建扁平包装:

pkgbuild --root ./pkg_root --scripts ./scripts --identifier com.wxwidgets.wxpython wxPython-ABC.pkg
Run Code Online (Sandbox Code Playgroud)

如果要自定义传递的参数,这是命令文档pkbuild.

注意事项:原束包装体包含License.rtfWelcome.txt不包含在扁平封装文件.需要通过定义自定义XML文件并使用productbuild命令创建另一个包来添加这些内容.


小智 5

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

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

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


tho*_*r18 3

以下是我成功安装 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. 构建和安装需要一段时间。完成后,你可以尝试导入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()
    
    Run Code Online (Sandbox Code Playgroud)

如果打印了 wx 版本,则说明它正在工作。
有些系统安装了其他版本的 wxPython 或旧 wxPython 的痕迹,这导致我需要设置如上所示的环境,直到旧的部分从系统中清除。