Hi Edward.
For convenience, I'll answer below.
On 04.04.2012, at 13:26, Edward d'Auvergne wrote:
did you test it on a „vanilla“ machine without wx installed? [...]
This is my development machine which has 5 copies of wx installed
(fink, Xcode, and 3 custom Mac frameworks). [...]
I'm asking because maybe (!) there is something wrong with the py2app
bundle and one of your system installations kicks in.
relax Error
An unexpected error has occurred during execution of the main script
AttributeError: 'module' object has no attribute 'TickCount'
This is quite peculiar as the Python version in the DMG file has this
Carbon.Evt.TickCount object (or at least it should). Could you find
the 'Python' executable file in the relax.app/ file structure, run it
from the terminal, and then type:
from Carbon.Evt import TickCount
The custom python interpreter in the 1.3.14 bundle will not run:
$ cd /Applications/relax.app/Contents/MacOS
$ ls
python relax
$ ./python
python: posix_spawn: /Applications/relax.app/Contents/MacOS/python2.6: No
such file or directory
There is something missing, or some paths get mixed up. However, this gives
different errors with the 1.3.13 version (my .app is renamed):
$ cd "/Applications/relax 3.13.app/Contents/MacOS"
$ ls
python relax
$ ./python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site
If I start the custom relax binary inside Contents/MacOS/ I get
$ ./relax
Please install the wx Python module to access the relax GUI.
So to me it seems that wxPython is not included in your bundle.
Launching in this way will be then using a different Python
interpreter.
No, that's only the case if I run it from the Resources directory.
Command-line relax will run fine with my local python 2.7.2 (MacPorts).
relax -g however fails, probably because my wxPython is broken. See also
the points 3.) and 5.) in the table at the end of the mail.
If you run './relax -i', [...] This
different version of Python, the standard on your system, is missing
the wxPython module.
See the output in point 4.) below. wx is installed is installed loacally,
but most probably broken.
#! /usr/bin/env python
# Import the relax module.
import relax
# Start relax.
relax.start()
I can confirm that.
It's a possibility, but the load for creating the DMG file, and the
extensive testing of the DMG file, fink version provided by Jack
Howarth, and running from the sources is already quite high :S I'm
also not a Mac user, so I don't know much about the fink vs. MacPorts
vs. Homebrew game.
I remember Homebrew maintainers discussing wxPython issues and
incompatibilities, but don't quote me on that.
I think it's safe to assume that the Lion is half baked and
not compatible with Xcode+Python+Mac OS X 10.6.8 yet,
Not so fast: As I mentioned earlier it runs perfectly if I launch the
py2app relax 3.13 binary via the command line. Just launching it via
clicking the symbol fails.
For the first, I thought that you received the TickCount error
attached to the bug report https://gna.org/bugs/?19606 as the log file
'relax-launcher-console.log'? T
I get this error when double clicking the bundle icon, NOT when launching
the custom-built py2app launcher binary wich sits inside Contents/MacOS
together with your custom python version.
3.14 fails in both ways, though.
This is strange as the wx code in relax is identical in 1.3.13 vs.
1.3.14. The Xcode versions are different though, thanks to the Mac
update. This again indicates that we need some type of workaround for
problems in the Mac Frameworks.
Is it possible that PATHs got mangled with the newer versions? The custom
python version inside the bundle will not start, because it looks for data
where nothing is:
$ ./python
python: posix_spawn: /Applications/relax.app/Contents/MacOS/python2.6: No
such file or directory
See below for an extensive list of what I tried and what the corresponding
output was. Let me know if I can do anything else for you.
Cheers
Martin
####
# 1.) Running the relax py2app bundle, equivalent double-clicking the bundle
$ cd /Applications/
$ open relax.app
$ # (a window opens with the said the "TickCount" error message)
####
# 2.) Running the relax py2app custom binary
$ cd /Applications/relax.app/Contents/MacOS
$ ls
python relax
$ ./relax
Please install the wx Python module to access the relax GUI.
# (this worked with the 1.3.13 version of relax)
####
# 3.) Running relax with the system-installed python (MacPorts, 2.7.2)
$ cd /Applications/relax.app/Contents/Resources
$ ./relax
relax 1.3.14
Molecular dynamics by NMR data analysis
Copyright (C) 2001-2006 Edward d'Auvergne
Copyright (C) 2006-2012 the relax development team
This is free software which you are welcome to modify and redistribute
under the conditions of the
GNU General Public License (GPL). This program, including all modules, is
licensed under the GPL
and comes with absolutely no warranty. For details type 'GPL' within the
relax prompt.
Assistance in using the relax prompt and scripting interface can be
accessed by typing 'help' within
the prompt.
ImportError:
dlopen(/Applications/relax.app/Contents/Resources/maths_fns/relax_fit.so,
2): no suitable image found. Did find:
/Applications/relax.app/Contents/Resources/maths_fns/relax_fit.so:
mach-o, but wrong architecture
Relaxation curve fitting is unavailable, try compiling the C modules.
Processor fabric: Uni-processor.
relax>
####
# 5.) relax information (relax -i)
$ pwd
/Applications/relax.app/Contents/Resources
alu:Resources martin$ ./relax -i
relax 1.3.14
Molecular dynamics by NMR data analysis
Copyright (C) 2001-2006 Edward d'Auvergne
Copyright (C) 2006-2012 the relax development team
This is free software which you are welcome to modify and redistribute
under the conditions of the
GNU General Public License (GPL). This program, including all modules, is
licensed under the GPL
and comes with absolutely no warranty. For details type 'GPL' within the
relax prompt.
Assistance in using the relax prompt and scripting interface can be
accessed by typing 'help' within
the prompt.
ImportError:
dlopen(/Applications/relax.app/Contents/Resources/maths_fns/relax_fit.so,
2): no suitable image found. Did find:
/Applications/relax.app/Contents/Resources/maths_fns/relax_fit.so:
mach-o, but wrong architecture
Relaxation curve fitting is unavailable, try compiling the C modules.
Processor fabric: Uni-processor.
Hardware information:
Machine: x86_64
Processor: i386
Endianness: little
Total RAM size: ? Mb
Total swap size: ? Mb
Operating system information:
System: Darwin
Release: 11.3.0
Version: Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41
PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64
Mac version: 10.7.3 (, , ) x86_64
Distribution:
Full platform string: Darwin-11.3.0-x86_64-i386-64bit
Python information:
Architecture: 64bit
Python version: 2.7.2
Python branch:
Python build: default, Mar 15 2012 17:00:43
Python compiler: GCC 4.2.1 Compatible Apple Clang 3.0
(tags/Apple/clang-211.12)
Libc version:
Python implementation: CPython
Python revision:
Python executable:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Python flags: sys.flags(debug=0, py3k_warning=0,
division_warning=0, division_new=0, inspect=0, interactive=0, optimize=0,
dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0,
tabcheck=0, verbose=0, unicode=0, bytes_warning=0)
Python float info: sys.float_info(max=1.7976931348623157e+308,
max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021,
min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16,
radix=2, rounds=1)
Python module path: ['/Applications/relax.app/Contents/Resources',
'/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg',
'/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages',
'/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages/wx-2.9.1-osx_cocoa',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info',
'/Library/Python/2.7/site-packages',
'/usr/local/lib/wxPython-2.9.1.1/lib/python2.7',
'/Applications/relax.app/Contents/Resources/extern/scientific_python/darwin']
Python packages (most are optional):
Package Installed Version Path
minfx True Unknown
/Applications/relax.app/Contents/Resources/minfx
bmrblib True Unknown
/Applications/relax.app/Contents/Resources/bmrblib
numpy True 1.6.1
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy
scipy False
wxPython True 2.9.1.1
/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages/wx-2.9.1-osx_cocoa/wx
mpi4py False
epydoc False
optparse True 1.5.3
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/optparse.pyc
readline True
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so
profile True
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/profile.pyc
bz2 True
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/bz2.so
gzip True
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/gzip.pyc
os.devnull True
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc
Compiled relax C modules:
Relaxation curve fitting: False
####
# 6.) Running relax -g with the system-installed python (MacPorts, 2.7.2)
# wxPython 2.9.1.1 (official installer) is installed and can be imported!
# this points to a broken installation on my side
./relax -g
2012-04-04 14:32:26.347 Python[80598:f0b] *** Assertion failure in
-[NSToolbar _forceInsertItem:atIndex:],
/SourceCache/AppKit/AppKit-1138.32/Toolbar.subproj/NSToolbar.m:1309
2012-04-04 14:32:26.349 Python[80598:f0b] An uncaught exception was raised
2012-04-04 14:32:26.350 Python[80598:f0b] Invalid parameter not satisfying:
index>=0 && index<=[self _numberOfItems]
2012-04-04 14:32:26.356 Python[80598:f0b] (
0 CoreFoundation 0x00007fff902effc6
__exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8634dd5e
objc_exception_throw + 43
2 CoreFoundation 0x00007fff902efdfa
+[NSException raise:format:arguments:] + 106
3 Foundation 0x00007fff87696743
-[NSAssertionHandler
handleFailureInMethod:object:file:lineNumber:description:] + 169
4 AppKit 0x00007fff8aa24f5e
-[NSToolbar _forceInsertItem:atIndex:] + 163
5 AppKit 0x00007fff8aa24d35
-[NSToolbar
_insertItem:atIndex:notifyDelegate:notifyView:notifyFamilyAndUpdateDefaults:]
+ 121
6 AppKit 0x00007fff8aa24a70
-[NSToolbar
_insertNewItemWithItemIdentifier:atIndex:propertyListRepresentation:notifyFlags:]
+ 118
7 libwx_osx_cocoau-2.9.1.0.0.dylib 0x0000000109a3330b
_ZN9wxToolBar7RealizeEv + 1531
8 _controls_.so 0x000000010b13ab76
_wrap_ToolBarBase_Realize + 102
9 Python 0x0000000108722bfa
PyEval_EvalFrameEx + 9706
10 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
11 Python 0x00000001087283b9
fast_function + 313
12 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
13 Python 0x0000000108728343
fast_function + 195
14 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
15 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
16 Python 0x00000001086b388e
function_call + 350
17 Python 0x000000010868efd1
PyObject_Call + 97
18 Python 0x000000010869aff6
instancemethod_call + 470
19 Python 0x000000010868efd1
PyObject_Call + 97
20 Python 0x00000001086e920b
slot_tp_init + 187
21 Python 0x00000001086e0b9a type_call
+ 362
22 Python 0x000000010868efd1
PyObject_Call + 97
23 Python 0x00000001087224cf
PyEval_EvalFrameEx + 7871
24 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
25 Python 0x00000001086b388e
function_call + 350
26 Python 0x000000010868efd1
PyObject_Call + 97
27 Python 0x000000010869aff6
instancemethod_call + 470
28 Python 0x000000010868efd1
PyObject_Call + 97
29 Python 0x0000000108727b01
PyEval_CallObjectWithKeywords + 177
30 _core_.so 0x00000001094d5c5e
_ZN7wxPyApp13_BootstrapAppEv + 766
31 _core_.so 0x0000000109514cfb
_wrap_PyApp__BootstrapApp + 75
32 Python 0x0000000108722bfa
PyEval_EvalFrameEx + 9706
33 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
34 Python 0x00000001087283b9
fast_function + 313
35 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
36 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
37 Python 0x00000001087283b9
fast_function + 313
38 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
39 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
40 Python 0x00000001086b388e
function_call + 350
41 Python 0x000000010868efd1
PyObject_Call + 97
42 Python 0x000000010869aff6
instancemethod_call + 470
43 Python 0x000000010868efd1
PyObject_Call + 97
44 Python 0x00000001086e920b
slot_tp_init + 187
45 Python 0x00000001086e0b9a type_call
+ 362
46 Python 0x000000010868efd1
PyObject_Call + 97
47 Python 0x00000001087224cf
PyEval_EvalFrameEx + 7871
48 Python 0x0000000108728343
fast_function + 195
49 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
50 Python 0x0000000108728343
fast_function + 195
51 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
52 Python 0x0000000108728343
fast_function + 195
53 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
54 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
55 Python 0x00000001087283b9
fast_function + 313
56 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
57 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
58 Python 0x000000010871fd16
PyEval_EvalCode + 54
59 Python 0x0000000108747b4e
PyRun_FileExFlags + 174
60 Python 0x0000000108747528
PyRun_SimpleFileExFlags + 424
61 Python 0x000000010875b63e Py_Main +
2990
62 Python 0x000000010867bf24 Python +
3876
63 ??? 0x0000000000000003 0x0 + 3
)
2012-04-04 14:32:26.358 Python[80598:f0b] *** Terminating app due to
uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid
parameter not satisfying: index>=0 && index<=[self _numberOfItems]'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff902effc6
__exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8634dd5e
objc_exception_throw + 43
2 CoreFoundation 0x00007fff902efdfa
+[NSException raise:format:arguments:] + 106
3 Foundation 0x00007fff87696743
-[NSAssertionHandler
handleFailureInMethod:object:file:lineNumber:description:] + 169
4 AppKit 0x00007fff8aa24f5e
-[NSToolbar _forceInsertItem:atIndex:] + 163
5 AppKit 0x00007fff8aa24d35
-[NSToolbar
_insertItem:atIndex:notifyDelegate:notifyView:notifyFamilyAndUpdateDefaults:]
+ 121
6 AppKit 0x00007fff8aa24a70
-[NSToolbar
_insertNewItemWithItemIdentifier:atIndex:propertyListRepresentation:notifyFlags:]
+ 118
7 libwx_osx_cocoau-2.9.1.0.0.dylib 0x0000000109a3330b
_ZN9wxToolBar7RealizeEv + 1531
8 _controls_.so 0x000000010b13ab76
_wrap_ToolBarBase_Realize + 102
9 Python 0x0000000108722bfa
PyEval_EvalFrameEx + 9706
10 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
11 Python 0x00000001087283b9
fast_function + 313
12 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
13 Python 0x0000000108728343
fast_function + 195
14 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
15 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
16 Python 0x00000001086b388e
function_call + 350
17 Python 0x000000010868efd1
PyObject_Call + 97
18 Python 0x000000010869aff6
instancemethod_call + 470
19 Python 0x000000010868efd1
PyObject_Call + 97
20 Python 0x00000001086e920b
slot_tp_init + 187
21 Python 0x00000001086e0b9a type_call
+ 362
22 Python 0x000000010868efd1
PyObject_Call + 97
23 Python 0x00000001087224cf
PyEval_EvalFrameEx + 7871
24 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
25 Python 0x00000001086b388e
function_call + 350
26 Python 0x000000010868efd1
PyObject_Call + 97
27 Python 0x000000010869aff6
instancemethod_call + 470
28 Python 0x000000010868efd1
PyObject_Call + 97
29 Python 0x0000000108727b01
PyEval_CallObjectWithKeywords + 177
30 _core_.so 0x00000001094d5c5e
_ZN7wxPyApp13_BootstrapAppEv + 766
31 _core_.so 0x0000000109514cfb
_wrap_PyApp__BootstrapApp + 75
32 Python 0x0000000108722bfa
PyEval_EvalFrameEx + 9706
33 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
34 Python 0x00000001087283b9
fast_function + 313
35 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
36 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
37 Python 0x00000001087283b9
fast_function + 313
38 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
39 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
40 Python 0x00000001086b388e
function_call + 350
41 Python 0x000000010868efd1
PyObject_Call + 97
42 Python 0x000000010869aff6
instancemethod_call + 470
43 Python 0x000000010868efd1
PyObject_Call + 97
44 Python 0x00000001086e920b
slot_tp_init + 187
45 Python 0x00000001086e0b9a type_call
+ 362
46 Python 0x000000010868efd1
PyObject_Call + 97
47 Python 0x00000001087224cf
PyEval_EvalFrameEx + 7871
48 Python 0x0000000108728343
fast_function + 195
49 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
50 Python 0x0000000108728343
fast_function + 195
51 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
52 Python 0x0000000108728343
fast_function + 195
53 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
54 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
55 Python 0x00000001087283b9
fast_function + 313
56 Python 0x00000001087222be
PyEval_EvalFrameEx + 7342
57 Python 0x00000001087205b9
PyEval_EvalCodeEx + 2201
58 Python 0x000000010871fd16
PyEval_EvalCode + 54
59 Python 0x0000000108747b4e
PyRun_FileExFlags + 174
60 Python 0x0000000108747528
PyRun_SimpleFileExFlags + 424
61 Python 0x000000010875b63e Py_Main +
2990
62 Python 0x000000010867bf24 Python +
3876
63 ??? 0x0000000000000003 0x0 + 3
)
terminate called throwing an exceptionAbort trap: 6
####################################################
# some information about the custom python interpreter inside the .app
bundle
$ ./python
python: posix_spawn: /Applications/relax.app/Contents/MacOS/python2.6: No
such file or directory
# which python is installed on my system
$ which python
/opt/local/bin/python
$ python --version
Python 2.7.2
# This is MacPorts, as you can see. wxPython 2.9.1.1 for python 2.7 (from
the official installer) can be imported.
$ python
Python 2.7.2 (default, Mar 15 2012, 17:00:43)
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
import wx