Install wxPython in osx 10.11

2019-03-16 09:17发布

问题:

When I try to install wxPython, it shows an error:

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

How can I fix it?

回答1:

wxPython is using a legacy script, and according to this technical note bundle installers were deprecated and are (as of El Capitan release) unsupported:

Bundle-style installer packages are a legacy transition aid that is no longer supported. PackageMaker is also no longer supported. It is now necessary to convert to flat-file installer packages using tools like productbuild.

That leaves you with two options,

  1. Convert the installer to a flat package.
  2. Compile wxWidgets and install it locally.

To achieve the former, follow these instructions:

0) Let's assume that you have already mounted the dmg and you have moved the pkg folder to a working place.

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

1) Use the pax utility to extract the payload file (pax.gz) from Contents/Resources to a folder that will become the root of your new package.

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

2) Rename the bundle's preflight/postflight scripts, to preinstall/postinstall scripts, as required for flat packages, in a scripts folder.

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

3) Create the flat package using the pkgbuild tool:

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

This is the documentation of the pkbuild command in case you want to customize the passed parameters.

Caveats: The original bundle package contains a License.rtf and a Welcome.txt files that are not included in the flat package. Those need to be added by defining a custom XML file and creating another package using the productbuild command.



回答2:

A working installer for wxpython for the Mac seems to be available in pre-release:

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

this seemed to work for me. Worked for El Capitan.



回答3:

Here are steps I successfully used to install wxPython 'Classic' (not 'Phoenix').
OSX 10.11 or newer can not run that installer you tried, but this method will work.

  1. Pull these two newest sources into two sibling directories:
    https://github.com/wxWidgets/wxPython.git
    https://github.com/wxWidgets/wxWidgets.git
    (sources from before 12/16/2015 won't work for this method)
  2. Change directories cd /pathToYourGitHubSources/wxPython and run the following command:
    python build-wxpython.py --build_dir=../bld --osx_cocoa --install
  3. Build and install takes a while. After it is completed, you can try import wx, but may first need the following steps.
  4. Look in the newly created installed_files.txt to see what directories wxPython* files are in, as well as the location of /wx/*.py and /lib/*.pyc files. The three directories are probably like:
    /usr/lib/python2.7/site-packages
    /usr/lib/python2.7/site-packages/wx
    /usr/lib/python2.7/site-packages/wx/lib
  5. From terminal command line set environment and test 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()
    

If the wx version printed, it's working.
Some systems have other versions of wxPython or vestiges of old wxPythons installed that have led me to need setting the environment as seen above until the old pieces are cleaned off the system.



回答4:

this worked for me (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?



回答5:

Found a Solution for this issue :

Error :

mac01:tools ganeshr$ ride.py

Wrong wxPython version. You need to install wxPython 2.8.12.1 with unicode support to run RIDE. wxPython 2.8.12.1 can be downloaded

Solution : - Add supported_versions.append("3.0") support in robotide/__init__.py

Check wxPython is Installed:

$ pip list

wxPython (3.0.2.0) wxPython-common (3.0.2.0)

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

try: import wxversion

from wxversion import VersionError

if sys.platform == 'darwin':

supported_versions.append("2.9")

supported_versions.append("3.0") # Add this line, the RIDE will support wxPython (3.0.2.0)

wxversion.select(supported_versions) import wx

Thanks.



回答6:

I posted an answer about building from source and @memoselyk posted a useful answer on how to convert a package to install on newer OSX. However, I am finding the easy solution is to use the Brew package manager.
Below are the steps I used.

  • Install Brew with this single command:
    • ruby -e "$(curl -fsSL \ https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • Install wx; (dependencies will also be installed)
    • brew install wxpython --framework

Test for error: python -c 'import wx'

Done, but the following may also be relevant.

  • I ran the below commands several times to clean off old installs and make sure I was able to import the correct wx:
    • sudo pip uninstall wxPython
    • sudo pip uninstall wxPython-Phoenix
  • I removed system environment variables added to get some previous installs to work.
    • unset PYTHONPATH
    • unset DYLD_LIBRARY_PATH
    • unset DYLD_FRAMEWORK_PATH

After installing wx you may need to run the following if it was a dirty install:
- brew link --overwrite wxmac
- brew doctor wxPython (and follow the very useful directions if something is detected)

If you want access to other builds, this isn't the method for you, but for the 3.0.2.0 'Classic' release, I think this is the way to go.
brew upgrade wxPython would bump up to a newer release, if there ever is one.



回答7:

For me it worked simply by using brew:

brew install wxpython

I'm surprised no one else posted the same answer!

PS: I'm on El Capitan, 10.11.3