A small update. I went back a couple of versions on mono, to see if that's got anything to do with my problems.

Starting from a clean VM. I simplified the build process a bit as well.

I managed to get clr.so working fine with python2.5.5 and using mono2.4.3, when running it using the standalone python installation.


However, when i try to import clr into an embedded python (like the one in Nuke5.2 for example), i get the following error:

Stacktrace:

  at (wrapper managed-to-native) Python.Runtime.Runtime.PyInt_FromLong (intptr) <0x00060>
  at (wrapper managed-to-native) Python.Runtime.Runtime.PyInt_FromLong (intptr) <0xffffffff>
  at Python.Runtime.Runtime.PyInt_FromInt32 (int) <0x00023>
  at Python.Runtime.Runtime.Initialize () <0x00303>
  at Python.Runtime.PythonEngine.Initialize () <0x0004b>
  at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff                               >

Native stacktrace:

        /usr/local/lib/libmono.so.0 [0x2aaab409088d]
        /usr/local/lib/libmono.so.0 [0x2aaab40c0a33]
        /lib64/libc.so.6 [0x39568302d0]
        /usr/local/lib/libpython2.5.so(PyInt_FromLong+0x1c) [0x2aaab48fdf5c]
        [0x40fad6a0]


I noticed that Ulrich Elk had this issue about 2 years ago, and Brian Lloyd's first reaction was "are you on a 64bit machine?". Well, i am :-)
All the libraries i use are 64b (at least i think so, i built most requirements myself).

( http://mail.python.org/pipermail/pythondotnet/2008-April/000795.html )



cheers,
laszlo




On 06/12/2010 5:22 PM, Laszlo Sebo wrote:
Hi there,


I've been trying to get Python.Net working for the last couple weeks on linux (using rev 110), and so far i haven't had much luck. Maybe i am using libraries that are not yet supported, so any help would be appreciated.

I am using centOS 5.5, and python 2.5.1 64bit. I am using the latest (2.8.1) version of mono.

To get python.net to build, i had to modify a couple of files, as by default it wouldn't build. First I had to build and install  glib (2.26.1), then do the following:

Add these lines to the setup.py (most likely my glib installation wasn't doing its setup properly)
kw["include_dirs"].append('/usr/local/include/glib-2.0')
kw["include_dirs"].append('/usr/local/lib/glib-2.0/include')
Then edit the pynetclr.h file and add this line:
#include <gmodule.h>

Then edit the makefile for monoclr:
add include files to PY_CFLAGS variable: -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include
MONO_LIBS = $(shell pkg-config --libs mono-2)
MONO_CFLAGS = $(shell pkg-config --cflags mono-2)
add clrpython.o to clr.so make: -dynamiclib pynetinit.o clrmod.o clrpython.o -o clr.so
remove -lpython from the PY_LIBS listing
After this everything built without errors. However... the clr.so files don't quite work :)

I get 3 behaviours:
  • if i use the clr.so in the root folder: import clr; import System; => segmentation fault
  • if i use the clr.so in the monoclr folder: ImportError: /usr/local/lib/python2.5/site-packages/clr.so: cannot dynamically load executable
  • if i use the clr.so in the root folder, and also copy the libpython2.5.so in the site-packages folder: import clr => segmentation fault
Not sure what i'm doing wrong to be honest. I'll try to roll back mono a couple versions, and try that (2.4.3 maybe).

I have a feeling i am missing something very obvious here...

Any pointers would be appreciated!


cheers,
laszlo sebo

    

_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
http://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to