John Ehresman wrote:
> John Pye wrote:
>> Agreed, but it's really not necessary: msvcr71 is included with Python
>> 2.5. It is not a problem of the file not being availble; the problem is
>> the PyGTK isn't finding the file, or (alternatively) that Python 2.5
>> isn't putting it in the right place (ie in the system32 folder -- by
>> there might be a good reason for that).
>
> Python is following MS recommended practice by not putting msvcr71 in
> system32 -- it at least originally was not to be treated as an OS
> system library, but rather a runtime library to be distributed with
> applications as needed.

That's OK, I guess.

>
>
> Under what conditions is it not found?  When python.exe is run, the
> .dll in the same directory should be loaded.

It's not found when running (for example) the PyGObject installer.
Python itself seems to run fine. I think it could be a bug in distutils,
or something missing in the 'setup.py' for these packages.

Given that PyGObject just installs Python modules that are only then
loaded via python.exe (or other applications that embed Python), it's
probably fair for the PyGObject installer to also search in c:\Python25
before concluding that msvcr71.dll is not available. It appears not to
be doing that.

>> I suspect that the Python installer should perhaps be modified so that
>> msvcr71.dll is placed in the correct location. Alternatively, 'rpaths'
>> could maybe be encoded into the PyGTK and other DLLs so that the
>> required file is found automatically without modifications to the PATH.
>> If relative a rpath is works then this could be OK, conceivably.
>
> rpaths doesn't exist on win32, to the best of my knowledge.

You are right, although some further checking did confirm my suspicion
that a windows equivalent for this *does* exist (I saw mention of it
when using the Dependency Walker utility). See here for details of the
Windows method, which uses the Registry:

http://www.codeguru.com/Cpp/W-P/dll/article.php/c99

I don't think that this method helps us in this case, however.

Conclusion: whereever the code is that checks for the existance of
msvcr71.dll, it should also search in the Python installation directory,
in addition to the PATH. Try Dependency Walker for the steps that are
followed when Windows hunts for a DLLs.

Question: *sometimes* msvcr71.dll is available in the Windows directory.
What installs it? Is it reasonable to assume that any up-to-date Windows
system will always have a copy of this DLL? If I had simply performed by
Windows Update thing, perhaps I wouldn't have seen this problem.

Cheers
JP
_______________________________________________
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to