Multi-Version Installs

TableOfContents

Introduction

Starting with 2.5.3.0 the wx and wxPython pacakge directories will be installed in a subdirectory of the site-packages directory, instead of directly in site-pacakges. This is done to help facilitate having multiple versions of wxPython installed side-by-side. Why would you want to do this? One possible scenario is you have an app that requires wxPython 2.4 but you want to use the newest 2.5 to do your development with. Or perhaps you want to be able to test your app with several different versions of wxPython to ensure compatibility. Before everyone panics, rest asured that if you only install one version of wxPython then you should notice no difference in how things work.

In addition to installing wxPython into a "versioned" subdirectory of site-packages, a file named wx.pth is optionally installed that will contain the name of the versioned subdirectory. This will cause that subdirectory to be automatically added to the sys.path and so doing an "import wx" will find the package in the subdirectory like like it would have if it was still located in site-packages. I say "optionally" above because that is how you can control which install of wxPython is the default one. Which ever version installs the wx.pth file will be the one that is imported with a plain "import wx" statement. Of course you can always manipulate that by editing the wx.pth file, or by setting PYTHONPATH in the environment, or by the method described in the next paragraph.

Finally, a new module named wxversion.py is installed to the site-pacakges directory. It can be used to manipulate the sys.path at runtime so your applications can select which version of wxPython they would like to to have imported. You use it like this:

      import wxversion
      wxversion.require("2.4")
      import wx

Then eventhough a 2.5 version of wxPython may be the default the application that does the above the first time that wx is imported will actually get a 2.4 version. NOTE: There isn't actually a 2.4 version of wxPython that supports this, but there will be.

Install Directory Name Format

The site-packages subdirectory used for installing wxPython will have the following format, with some parts being optional depending on platform and build options:

        wx-VERSION [-PORT-CHARTYPE [-FLAVOUR]]

Here are some possible directory names:

    wx-2.5.3
    wx-2.5.3-gtk2-unicode
    wx-2.5.3.0-gtk2-unicode

So as you can see the complexity of the name really depends on the level of ganularity that you need to support., By default wxPython will allow you to install all supported versions of wxPython for a single platform at the same time. That means that the middle example above with the short version and the port and chartype is what the official binaries will use.

How do I use wxversion?

To be written...

How do I convert an existing install to a multi-version?

To be written...

How do I...

Good question...

This is confusing, why did you do it?

To be written...

NOTE: To edit pages in this wiki you must be a member of the TrustedEditorsGroup.