[pygtk] DLL load errors with Py2.6, PyGTK 2.22 and GTK 2.22 bundle

Stephen George steve_geo at optusnet.com.au
Mon Nov 29 05:50:17 WST 2010


On 29/11/2010 8:18 AM, Dieter Verfaillie wrote:
> Quoting "Stephen George" <steve_geo at optusnet.com.au>:
>> I also recommend DependencyWalker for resolving these issues.
>>
>> GRAMPS is a pygtk program, a lot of our Windows users have been 
>> facing lot's of "DLL load failed" issues recently , I've just started 
>> a Wiki page on the GRAMPS wiki talking about this issue.
>>
>> http://www.gramps-project.org/wiki/index.php?title=ImportError:_DLL_load_failed 
>>
>>
>> It may be of some help, but I haven't got to the section discussing 
>> dependency walker usage.
>
> I see gramps lists graphviz as an optional dependency. Beware that
> graphviz installs it's own gtk+ runtime (and might add graphviz to
> PATH). This could be one reason some of your windows users are having
> problems.
>
> If the graphviz directory comes first on PATH (before the gtk+ runtime
> version required by pygtk, pygobject and pycairo), the python bindings
> will try to load the necessary dll files from an unexpected location,
> most likely having and incompatible gtk+ runtime.
>
> Just a thought...
>
> mvg,
> Dieter

Hi Dieter,

Thanks for pointing the problem out

Yes, .. we are aware of this, and is part of the reason why the script 
check_gtk_install was created, to try and highlight when people have 
path issues ( whose gtk comes first).
I think most people on a pygtk forum have some sort of developer 
background, .. but our users on GRAMPS come from all walks of life, and 
some are not necessarily technically savvy and have real problem just 
installing the gtk / pygtk stack. If they get that far and then  have 
DLL load failures it all gets too hard for them to diagnose. I think on 
windows we have lost a lot of potential GRAMPS users just because the 
gtk / pygtk stack is too hard for them to install.

Now days most people start GRAMPS with a batch file that puts the bin 
directory of  GTK rutime GRAMPS wants to use on the path in front of all 
others - therefore the path modification is only valid for the duration 
of the session, and isolated to that one process.

<whinge>
Personally I have a lot of problem with GTK applications that ship a 
local copy of GTK putting their copy on the path for all to see.
I don't see that problem with GIMP, .. while they ship a local copy of 
GTK, they don't put themselves on the path, and I think that's a model 
other shipping gtk apps could follow.

It's no wonder a globally installed gtk runtime, is so problematic when 
it's got to fight with various local gtk installs getting in the way.

In fact now we are starting to find something has installed some DLL's ( 
i.e. intl.dll, iconv.dll)  to windows\system or windows\system32, this 
causes a major problem as this path gets checked BEFORE the path, so 
even you put your global gtk-runtime first on path, it will still find 
the wrong copy of intl.dll.
</whinge>

Steve


More information about the pygtk mailing list