yanne / api-testing

I am using this to test GitHub API
1 stars 0 forks source link

Support wxPython 2.9 in OSX #36

Closed yanne closed 10 years ago

yanne commented 10 years ago

We explicitly select wxPython 2.8 if it is found using wxversion.select('2.8') in roboide/init.py

However, wxPython 2.9 has been available for some time, so we should prefer that if it's found.

This issue was originally reported to Google Code on Nov 17, 2011.

yanne commented 10 years ago

Original comment by jerry57@gmail.com on Nov 17, 2011 .

On a Lion laptop I installed wxPython 2.9.2.4 cocoa and then removed the ride install that was there and installed 0.39.1. When I tried to launch ride.py I am getting the following.

Note: previous 2.8.12.1-1 wxPython was uninstalled and env for VERSIONER (unset VERSIONER_PYTHON_PREFER_32_BIT) was removed.

IPC-Freud:de jerry$ ride.py . & [1] 645 IPC-Freud:de jerry$ Traceback (most recent call last): File "/usr/local/bin/ride.py", line 22, in main(sys.argv[1:]) File "/Library/Python/2.7/site-packages/robotide/init.py", line 59, in main _run(args) File "/Library/Python/2.7/site-packages/robotide/init.py", line 68, in _run ride = RIDE(inpath) File "/Library/Python/2.7/site-packages/robotide/application/application.py", line 35, in init wx.App.init(self, redirect=False) File "/usr/local/lib/wxPython-2.9.2.4/lib/python2.7/site-packages/wx-2.9.2-osx_cocoa/wx/_core.py", line 8593, in init self._BootstrapApp() File "/usr/local/lib/wxPython-2.9.2.4/lib/python2.7/site-packages/wx-2.9.2-osx_cocoa/wx/_core.py", line 8158, in _BootstrapApp return core.PyApp__BootstrapApp(_args, _kwargs) File "/Library/Python/2.7/site-packages/robotide/application/application.py", line 40, in OnInit self.frame = RideFrame(self, self._controller) File "/Library/Python/2.7/site-packages/robotide/ui/mainframe.py", line 63, in init self._init_ui() File "/Library/Python/2.7/site-packages/robotide/ui/mainframe.py", line 91, in _init_ui self.tree = Tree(splitter, self.actions) File "/Library/Python/2.7/site-packages/robotide/ui/tree.py", line 71, in init action_registerer.register_actions(actions) File "/Library/Python/2.7/site-packages/robotide/ui/mainframe.py", line 272, in register_actions self.register_action(action) File "/Library/Python/2.7/site-packages/robotide/ui/mainframe.py", line 266, in register_action self._menubar.register(action) File "/Library/Python/2.7/site-packages/robotide/ui/actiontriggers.py", line 52, in register menu = self._create_menu(action.menu_name) File "/Library/Python/2.7/site-packages/robotide/ui/actiontriggers.py", line 38, in _create_menu self._insert_menu(menu, before_help) File "/Library/Python/2.7/site-packages/robotide/ui/actiontriggers.py", line 46, in _insert_menu self._mb.Insert(index, menu.wx_menu, menu.name) File "/usr/local/lib/wxPython-2.9.2.4/lib/python2.7/site-packages/wx-2.9.2-osx_cocoa/wx/_core.py", line 12245, in Insert return core.MenuBar_Insert(_args, *_kwargs) ValueError: in method 'MenuBar_Insert', expected argument 2 of type 'size_t'

[1]+ Exit 1 ride.py .

To get ride.py to use 2.9 I edited: src/robotide/init.py and changed the following from: try: import wxversion from wxversion import VersionError wxversion.select('2.8') to: try: import wxversion from wxversion import VersionError wxversion.select('2.9')

saved and installed after removing old install of 0.39.1

If I can help out testing this, just give a shout.

yanne commented 10 years ago

Original comment by janne.t....@gmail.com on Jan 4, 2012 .

I made the change to init.py so that 2.9 is selected if available. The problems have to investigated more thoroughly for the next release.

yanne commented 10 years ago

Original comment by mikko.ko...@gmail.com on Feb 13, 2012 .

wxpython 2.9 is now only used in OSX as there have been many odd issues in Windows 7

yanne commented 10 years ago

Original comment by mikko.ko...@gmail.com on Feb 13, 2012 .

Still not working.

yanne commented 10 years ago

Original comment by mikko.ko...@gmail.com on Feb 15, 2012 .

Moving to future release. Enough content in RIDE 0.42.

yanne commented 10 years ago

Original comment by mikko.ko...@gmail.com on Mar 19, 2012 .

Making release moving these to the next one

yanne commented 10 years ago

Original comment by mikko.ko...@gmail.com on May 6, 2012 .

Not in 0.44

yanne commented 10 years ago

Original comment by BlackBel...@gmail.com on Jul 16, 2012 .

I am stuck and dead in my RIDE evaluation because I can't get past this error with wxPython 2.9.3(.11?) and the latest RIDE. Any hope before I give up?

yanne commented 10 years ago

Original comment by jerry57@gmail.com on Jul 16, 2012 .

I ended up falling back to wx 2.8. I used "wxPython2.8-osx-unicode-py2.7" from the info below. Never was able to get 2.9 working yet.

http://www.wxpython.org/download.php

Mac OSX Binaries The wxPython binaries for OSX are mountable disk images. Simply double click to mount the image and then run the installer application in the image. Download the image that matches the version of Python that you want to use it with, and unless you know for sure that you need the ansi build please get the Unicode build. These binaries should work on all versions of OSX from 10.3.9 onwards on either PPC or i386 architectures. Since they use the Carbon API they are limited to running in 32-bit mode.

wxPython2.8-osx-unicode-py2.6 wxPython2.8-osx-ansi-py2.6
wxPython2.8-osx-unicode-py2.7 wxPython2.8-osx-ansi-py2.7

yanne commented 10 years ago

Original comment by mikko.ko...@gmail.com on Aug 8, 2012 .

(No comment was entered for this change.)

yanne commented 10 years ago

Original comment by jyrki.wa...@gmail.com on Aug 18, 2012 .

Some background to this: wxPython is obviously directly dependent on wxWindows, on OS X 2.8.* and 2.9.* are not compatible in that 2.8.* uses Carbon support (correctly noted already), 2.9.* is built on Cocoa. This has the effect that software built on 2.8 is not immediately usable on 2.9. One additional consequence on OS X is that the Carbon support means that RIDE has to run in 32-bit mode. The consequence of this, on the other hand, is that as this support does not exist anymore on 10.8, RIDE does not run on 10.8 until it has been modified a bit:) (With some hacking that may be achieved, but this means diving into deep and dangerous waters…)

yanne commented 10 years ago

Original comment by janne.t....@gmail.com on Aug 18, 2012 .

I have a version that works somewhat with wxPython 2.9. I have to still test whether this breaks 2.8 compatibility. If not, we could try to include the fixes in the next RIDE release.

yanne commented 10 years ago

Original comment by ironst...@gmail.com on Aug 31, 2012 .

@ janne if you could share a patch that would help me out immensely...
I'm trying to get RIDE built on OSX 10.8 w/ Mac Ports and it just can't be done atm...

wxWidgets 2.8.12 doesn't build and building against wxWidgets-devel puts you against 2.9 where you start with Publisher incompatibilities in the API (which I believe I got past) and then hit other incompatibilities, which were beyond my python-newb google+patch fixing abilities. :D

yanne commented 10 years ago

Original comment by ironst...@gmail.com on Aug 31, 2012 .

It seems wxWidgets 2.8.12 in macports depends on Carbon, however with 10.8, support for carbon is no longer there...

There's a ticket here that talks about hacking it with the 10.6 SDK (but that's not supported)...

http://trac.macports.org/ticket/35372

yanne commented 10 years ago

Original comment by jyrki.wa...@gmail.com on Sep 1, 2012 .

Hi, this is just to confirm that trying to build RIDE on OS X 10.8 w/MacPorts is not going to be successful before it works with 2.9.x (I happen to maintain all those ports). I wrote c11, but there I for some odd reason used the old name of wxWidgets (thx MS for causing confusion), but the situation should be clear.

yanne commented 10 years ago

Original comment by janne.t....@gmail.com on Sep 3, 2012 .

I managed to get RIDE running with wx2.9 under OSX Lion.

The commit is in my fork of RIDE: https://github.com/yanne/RIDE

It is not fully functional yet, more specifically, it still crashes if data source is given from the command line, or if the recent files plugin is enabled. But disabling recent files plugin by editing ~/.robotframework/ride/settings.cfg, and opening RIDE empty, and using menus to open data source seem to work.

I have not done extensive testing, so it might break on other places.

yanne commented 10 years ago

Original comment by janne.t....@gmail.com on Sep 4, 2012 .

My pull request was merged yesterday, so it is safer to clone

https://github.com/robotframework/RIDE.git

yanne commented 10 years ago

Original comment by ironst...@gmail.com on Sep 4, 2012 .

Here's my revised script to build and run RIDE... Subsequent runs can use "ride/ride.sh" to start again...

RIDE_START=../ride.sh PYTHON_VER="2.7" DASH_PYTHON_VER="-${PYTHON_VER}" PY=$(echo ${PYTHON_VER}| tr -d '.') sudo port install py${PY}-virtualenv py${PY}-pip py${PY}-paver wxWidgets-devel git-core PAVER=paver${DASH_PYTHON_VER} virtualenv${DASH_PYTHON_VER} --system-site-packages ride # create a virtual python environment for RIDE w/ access to system python libs (i.e. wxPython 2.8) cd ride

Make Pybot available from system-site-packages OR pip install robotframework if it's not there.

if [ ! -e bin/pybot ]; then if [ -e /opt/local/bin/pybot${DASH_PYTHON_VER} ]; then ln -s /opt/local/bin/pybot${DASH_PYTHON_VER} bin/pybot ln -s /opt/local/bin/rebot${DASH_PYTHON_VER} bin/rebot else bin/pip install robotframework fi fi bin/pip install robotframework-seleniumlibrary # Install Selenium Library bin/pip install paramiko robotframework-sshlibrary # Install SSH Library git clone https://github.com/robotframework/RIDE.git

cd RIDE echo '#!/usr/bin/env bash' > "${RIDE_START}" echo 'cd "$(dirname $0)"' >> "${RIDE_START}" echo 'export PATH=$(pwd)/bin:${PATH}' >> "${RIDE_START}" echo "export PYTHONPATH=\$(pwd)/lib/python${PYTHON_VER}/site-packages" >> "${RIDE_START}" echo 'cd "RIDE"' >> "${RIDE_START}" echo "${PAVER} run \$*" >> "${RIDE_START}" chmod +x "${RIDE_START}" "${RIDE_START}"

yanne commented 10 years ago

Original comment by jussi.ao...@gmail.com on Nov 6, 2012 .

Is this actually done already?

yanne commented 10 years ago

Original comment by jussi.ao...@gmail.com on Nov 19, 2012 .

No, not done. A lot of things fail on 2.9. Usually to segmentation fault.

yanne commented 10 years ago

Original comment by mojca.mi...@gmail.com on Dec 25, 2013 .

Are there any news about compatibility with wxWidgets 3.0?

yanne commented 10 years ago

Original comment by mojca.mi...@gmail.com on Dec 30, 2013 .

I didn't want to open a new ticket because of that (I would nevertheless suggest renaming the title of this ticket to "Support for wxPython 3.0 in OSX"), but I wanted to tell that ride doesn't even start if wxPython 3.0 is installed:

ride.py-2.7 Wrong wxPython version. You need to install wxPython 2.8 or 2.9 toolkit with unicode support to run RIDE. See http://wxpython.org for more information.

I'm aware that support for 2.9 was suboptimal and often problematic, but with 3.0 it fails just because it seen an unknown version of wxPython.

The MacPorts ticket is in https://trac.macports.org/ticket/41977