Hey Stefan,

Indeed it has to do with the libstdc++ library, which handles stdout and
your system's differs from that which Softimage was compiled with. No need
to recompile a thing, though; merely to fool Softimage into loading the
system one first.

It uses the first one it finds in the *LD_LIBRARY_PATH* environment
variable. The system one will be in there, but it's towards the end so it
gets ignored. You can make it the first with something like this:

import osimport subprocess

weAreInLinux = Application.Platform.startswith("Linux")
exe = r'c:\path\to\executable'if weAreInLinux:
    exe = r'/path/to/executable'
    ldEnv = "LD_LIBRARY_PATH"
    sysLibDir = "/usr/lib64"
    ld_oldVal = os.environ[ldEnv]
    ldList = os.environ[ldEnv].split(":")
    for i, x in enumerate(ldList):
        if x == sysLibDir:
            del ldList[i] # Sometimes it's too low in the list.
    os.environ[ldEnv] = sysLibDir+":"+os.environ[ldEnv] # So we make it first.

command = exe+cmdArgs
Application.LogMessage( 'Calling: ' + command )
proc = subprocess.Popen(command.split(), stdout=subprocess.PIPE,
stderr=subprocess.PIPE, cwd=os.path.dirname(exe))
out, err = proc.communicate()if weAreInLinux:
    os.environ[ldEnv] = ld_oldVal # Reset to old values, like a good
samaritan. :p
Application.LogMessage( "Execution complete -- out: %s, return code:
%s" % (out, err) )


I had to do this for a commandline tool I was trying to call and it was
giving me the same error. Hope it helps.
Cheers!

   -- Alan


ps: You may wanna write some extra code to catch exceptions when running
the process.



On Sun, Feb 24, 2013 at 10:18 AM, Stefan Andersson <sander...@gmail.com>wrote:

> I rather not since that might break softimage. And I would have to do
> that in each machine that has softimage.
>
> Regards
> Stefan
>
>
> On Feb 24, 2013, at 16:05, Mats Bertil Tegner
> <mats.bertil.teg...@gmail.com> wrote:
>
> > On 02/24/2013 03:54 PM, Stefan Andersson wrote:
> >> I know, and it's damn hard to try and get the source code from Autodesk
> >> to recompile Softimage :)
> >>
> >> I think this is more a MainWin thing, which glibc that MainWin used to
> >> "make" Softimage. I have glibc versions 3.4 - 3.4.13. So all is working
> >> as it should, except when I'm inside Softimage.
> >>
> >> I wonder if there is a magic way to "break free" from the Softimage
> >> environment to be able to use the system environment.
> >>
> >> And devs.. for the next version that you release (which would be the
> >> first for the Singapore team). Make *sure* you are using the *same*
> >> python version and modules that Maya are using. Or I will... be very
> sad...
> >>
> >> regards
> >> stefan andersson
> >
> > Is there a /usr/lib64 directory inside the Softimage directory? If so,
> you could try to make a softlink to the system-wide version of
> libstdc++.so.6
> >
> > Mats
> >
>

Reply via email to