[python-win32] can't import dde module after importing win32ui

Robert kxroberto at googlemail.com
Mon Nov 7 00:14:08 CET 2011


Robert wrote:
> Mark Hammond wrote:
>>
>> It will be something to do with the manifest and the mfc
>> libraries. I think that even though the mfc dlls are installed
>> with pywin32, it might not work as hoped :) Can you find a
>> redistributable version of the MFC dlls you can try? I can't
>> explain why the 32 vs 64bit versions behave differently other than
>> what libraries are already installed.
>>
>> Sorry, not much help...
>>
>
> same problem here.
>
> Well, the problem seems not to be 64bit specific. But is with
> build 216 and 215 on 32bit as well; and with all Python versions.
> Something changed critically with 215 build.
>
> The problem is not when starting through Pythinwin.exe (IDE), but
> only when starting with python(w).exe + win32ui
> (Even when the Pythonwin IDE is raise sucessfully through a script
> on python(w).exe, the problem is there)
>
> Is there a special manifest in Pythonwin.exe ?
>


notized: I remove just mfc90.dll from the Pythonwin folder, and 
then do python.exe:

C:\Python26\Lib\site-packages\pythonwin>\python26\python
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 
bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> import win32ui
 >>> win32ui.GetApp()
object 'PyCWinApp' - assoc is 00BBC728, vi=<None>, notify=0,ch/u=0/0
 >>> import dde
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
ImportError: DLL load failed: Das angegebene Modul wurde nicht 
gefunden.  (module not found)
 >>>


=> dde relies on the mfc90.dll  in the same folder, but 
win32ui(.GetApp()) not !?


And: with that removed mfc90.dll I can yet start the Pythonwin.exe 
of that very same folder AND successfully import dde !:
PythonWin 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 
bit (Intel)] on win32.
Portions Copyright 1994-2008 Mark Hammond - see 'Help/About 
PythonWin' for further copyright information.
 >>> import dde
 >>> os.getcwd()
'C:\\Python26\\Lib\\site-packages\\pythonwin'
 >>> dde
<module 'dde' from 'dde.pyd'>
 >>>


=> This time starting through Pythonwin.exe the same dde.pyd 
doesn't require the mfc90.dll in that folder!  (I can even remove 
the other 3 mfc dlls too)

=> There is a strange mixup of mfc DLL dependencies, varying with 
the initial .exe

There are also 2 different dates of the 4 MFC dlls here (in a very 
strange cross over order):

26.02.2011  18:43            48.640 dde.pyd
04.11.2011  11:57         1.156.600 mfc90.dll
07.11.2007  02:19         1.162.744 mfc90u.dll
06.11.2007  23:51            59.904 mfcm90.dll
04.11.2011  11:57            59.904 mfcm90u.dll
04.11.2011  11:57               548 Microsoft.VC90.MFC.manifest
19.08.2010  14:56           354.304 pythoncom26.dll
26.02.2011  18:43            19.968 Pythonwin.exe
19.08.2010  14:56           110.592 pywintypes26.dll
26.02.2011  18:42           778.240 win32ui.pyd
26.02.2011  18:42            37.888 win32uiole.pyd
               11 Datei(en)      3.789.332 Bytes
                2 Verzeichnis(se), 43.639.382.016 Bytes frei


I tried to copy various mfc90 DLL's  (4 of same date; e.g. 
18.4.2011) from WinSxS and also from pythonwin-212 to the 216 
pythonwin folder , but that still didn't solve the dde import 
problem in 216 when starting through python(w).exe

any ideas?


Robert



More information about the python-win32 mailing list