From: Tony C. <cap...@gm...> - 2009-04-07 23:38:43
|
I'm using Python 2.3 on Windows Xp. The import statement below caused a colleague's program to crash at run time (ignoring indentation inconsistencies in this email) import win32ui #<--- this causes a run time crash, when the app is an exe def BrowseForFile(startingDirectory=None, defaultFilespec='*.*'): '''Invokes the Windows common File browser dialog, ''' fn='' if not startingDirectory: startingDirectory = os.getcwd() FILE_OPEN = 1 dlg=win32ui.CreateFileDialog(FILE_OPEN, defaultFilespec) fn = None if dlg: dlg.SetOFNInitialDir(startingDirectory) dlg.DoModal() fn=dlg.GetFileName() return fn Does anyone have any ideas why this is occurring? |
From: Mark H. <ski...@gm...> - 2009-04-07 23:55:30
|
On 8/04/2009 9:38 AM, Tony Cappellini wrote: > > I'm using Python 2.3 on Windows Xp. > > The import statement below caused a colleague's program to crash at run time > (ignoring indentation inconsistencies in this email) > > import win32ui #<--- this causes a run time crash, when the app is an exe What are the symptoms of the crash exactly? If is complaining about a missing DLL, the problem is that win32ui depends on MFC, so that DLL needs to be shipped too. A better option would be to see if you can use win32gui instead of win32ui, and the problem will go away. Cheers, Mark |
From: Tony C. <cap...@gm...> - 2009-04-08 01:22:45
|
>>What are the symptoms of the crash exactly? The Dialogue box to send error info to Microsoft pops up. No explicit messages from Python. >>If is complaining about a missing DLL, the problem is that win32ui depends > on MFC, so that DLL needs to be >>shipped too. Which option is used to inlcude a dll, in setup.py? I only see an option to exclude dlls, and include packages. optimize - string or int (0, 1, or 2) includes - list of module names to include packages - list of packages to include with subpackages ignores - list of modules to ignore if they are not found excludes - list of module names to exclude dll_excludes - list of dlls to exclude >>A better option would be to see if you can use win32gui instead of > win32ui, and the problem will go away. > |
From: Mark H. <mha...@sk...> - 2009-04-08 02:46:06
|
> Which option is used to inlcude a dll, in setup.py? > I only see an option to exclude dlls, and include packages. py2exe doesn't provide such an option; you might be able to use data_files, or have your installer grab it from somewhere else, otherwise you will need to make your own arrangements... Cheers, Mark |
From: Tony C. <cap...@gm...> - 2009-04-08 16:54:53
|
MFC42.dll is in the path when I run as a .py as well as when I run as an exe. It doesn't seem like py2exe should have to do anything with this file. I ran the exe on the same system it was built on, so the dll should have been found in both cases. On 4/7/09, Mark Hammond <mha...@sk...> wrote: > > > Which option is used to inlcude a dll, in setup.py? > > I only see an option to exclude dlls, and include packages. > > > py2exe doesn't provide such an option; you might be able to use data_files, > or have your installer grab it from somewhere else, otherwise you will need > to make your own arrangements... > > Cheers, > > > Mark > > |
From: Mark H. <mha...@sk...> - 2009-04-08 22:53:41
|
> MFC42.dll is in the path when I run as a .py as well as when I run as an exe. Yeah - it might not be as simple as the DLL missing; the dialog you referred to before sounds more like a win32 exception dialog. > It doesn't seem like py2exe should have to do anything with this file. py2exe makes some attempts to locate dependent DLLs for you, and win32ui depends on the MFC dll. But that doesn't sound like the problem. > I ran the exe on the same system it was built on, so the dll > should have been found in both cases. Yep - the only thing I can suggest now is executing it under a debugger (eg, msvc) and see if that offers a clue... Cheers, Mark |
From: Tony C. <cap...@gm...> - 2009-04-09 17:07:12
|
>>Yeah - it might not be as simple as the DLL missing; the dialog you > referred to before sounds more like a >>win32 exception dialog. > > > I ran the exe on the same system it was built on, so the dll > > should have been found in both cases. >>Yep - the only thing I can suggest now is executing it under a debugger > (eg, msvc) and see if that offers a >>clue... Doesn't that require that my python distribution be compiled with symbolic info? In a previous message you mentioned using win32gui. What is the argument that needs to be passed. I've tried the current directory, but that doesn't work. import win32gui win32gui.GetOpenFileName() Traceback (most recent call last): File "<input>", line 1, in ? TypeError: GetOpenFileName() takes exactly 1 argument (0 given) help(win32gui.GetOpenFileName) Help on built-in function GetOpenFileName: GetOpenFileName(...) |
From: Mark H. <mha...@sk...> - 2009-04-09 21:46:54
|
>>Yep - the only thing I can suggest now is executing it under a debugger (eg, msvc) and see if that offers a >>clue... > Doesn't that require that my python distribution be compiled with symbolic info? For a crash you may be useful info regardless (eg, you may get the function name, just no params or variables, etc) > In a previous message you mentioned using win32gui. > What is the argument that needs to be passed. I've tried > the current directory, but that doesn't work. It is a bit inconvenient - you need to use the struct module to pack an OPENFILENAME structure together. Cheers, Mark |
From: Niki S. <nik...@gm...> - 2009-04-14 07:40:09
|
Old sample: def getDXF(filespec=('DXF (.dxf)\0*.dxf','All\0*.*'), mode='r'): import win32gui, win32con from array import array od = array( 'l', [0]*22 ) od[0] = len(buffer(od)) filter = buffer('\0'.join(filespec)) od[3] = win32gui.PyGetBufferAddressAndLen( filter )[0] name = win32gui.PyMakeBuffer( 300 ) name[0] = '\0' od[7],od[8] = win32gui.PyGetBufferAddressAndLen( name ) if 'r' in mode: od[13] = win32con.OFN_FILEMUSTEXIST | win32con.OFN_HIDEREADONLY else: od[13] = win32con.OFN_HIDEREADONLY|win32con.OFN_OVERWRITEPROMPT if win32gui.GetOpenFileName( str(buffer(od)) ): return name[:str(name).index('\0')] HTH Niki |
From: Tony C. <cap...@gm...> - 2009-04-13 14:02:32
|
Thanks! On 4/13/09, Niki Spahiev <nik...@gm...> wrote: > > Old sample: > > def getDXF(filespec=('DXF (.dxf)\0*.dxf','All\0*.*'), mode='r'): > import win32gui, win32con > from array import array > od = array( 'l', [0]*22 ) > od[0] = len(buffer(od)) > filter = buffer('\0'.join(filespec)) > od[3] = win32gui.PyGetBufferAddressAndLen( filter )[0] > name = win32gui.PyMakeBuffer( 300 ) > name[0] = '\0' > od[7],od[8] = win32gui.PyGetBufferAddressAndLen( name ) > if 'r' in mode: > od[13] = win32con.OFN_FILEMUSTEXIST | win32con.OFN_HIDEREADONLY > else: > od[13] = win32con.OFN_HIDEREADONLY|win32con.OFN_OVERWRITEPROMPT > if win32gui.GetOpenFileName( str(buffer(od)) ): > return name[:str(name).index('\0')] > > HTH > > Niki > |
From: le d. <le....@la...> - 2010-02-02 14:03:22
|
Did someone found a solution ? I encounter the same problem, after building an application with py2exe, it crashes with : Traceback (most recent call last): File "test.py", line 7, in <module> File "win32ui.pyo", line 12, in <module> File "win32ui.pyo", line 10, in __load ImportError: DLL load failed: Line 7 in test.py : import win32ui Versions of python stuff used : py2exe-0.6.9.win32-py2.6.exe pywin32-214.win32-py2.6.exe python-2.6.4.msi I tried to copy all mfc*.dll I found in %SYSTEM32% but without success. What can I try else ? Mark Hammond wrote : >> MFC42.dll is in the path when I run as a .py as well as when I run as an exe. > > Yeah - it might not be as simple as the DLL missing; the dialog you referred to before sounds more like a win32 exception dialog. > >> It doesn't seem like py2exe should have to do anything with this file. > > py2exe makes some attempts to locate dependent DLLs for you, and win32ui depends on the MFC dll. But that doesn't sound like the problem. > >> I ran the exe on the same system it was built on, so the dll >> should have been found in both cases. > > Yep - the only thing I can suggest now is executing it under a debugger (eg, msvc) and see if that offers a clue... > > Cheers, > > Mark |
From: le d. <le....@la...> - 2010-02-03 09:54:25
|
What do you mean with "using the proper typelibs" ? I've found this message : http://www.mail-archive.com/pyt...@py.../msg258188.html This also solved my ImportError problem. But does this mean that I must tell users to install "Microsoft Visual C++ 2008 Redistributable Package" before installing my app ? Or is there a way to make py2exe copy the needed DLLs directly in the application ? Thanks. Eligio Becerra wrote : > Hi: > > Are you using the proper typelibs? > > 2010/2/2 le dahut <le....@la... <mailto:le....@la...>> > > Did someone found a solution ? > > I encounter the same problem, after building an application with py2exe, > it crashes with : > Traceback (most recent call last): > File "test.py", line 7, in <module> > File "win32ui.pyo", line 12, in <module> > File "win32ui.pyo", line 10, in __load > ImportError: DLL load failed: > > > Line 7 in test.py : > import win32ui > > Versions of python stuff used : > py2exe-0.6.9.win32-py2.6.exe > pywin32-214.win32-py2.6.exe > python-2.6.4.msi > > > I tried to copy all mfc*.dll I found in %SYSTEM32% but without success. > > > What can I try else ? > > > Mark Hammond wrote : > >> MFC42.dll is in the path when I run as a .py as well as when I > run as an exe. > > > > Yeah - it might not be as simple as the DLL missing; the dialog > you referred to before sounds more like a win32 exception dialog. > > > >> It doesn't seem like py2exe should have to do anything with this > file. > > > > py2exe makes some attempts to locate dependent DLLs for you, and > win32ui depends on the MFC dll. But that doesn't sound like the > problem. > > > >> I ran the exe on the same system it was built on, so the dll > >> should have been found in both cases. > > > > Yep - the only thing I can suggest now is executing it under a > debugger (eg, msvc) and see if that offers a clue... > > > > Cheers, > > > > Mark > > ------------------------------------------------------------------------------ > The Planet: dedicated and managed hosting, cloud storage, colocation > Stay online with enterprise data centers and the best network in the > business > Choose flexible plans and management services without long-term > contracts > Personal 24x7 support from experience hosting pros just a phone call > away. > http://p.sf.net/sfu/theplanet-com > _______________________________________________ > Py2exe-users mailing list > Py2...@li... > <mailto:Py2...@li...> > https://lists.sourceforge.net/lists/listinfo/py2exe-users > > > > > -- > Por favor, antes de preguntar mamadas... http://www.usaelputogoogle.com > masterLoki - Trying to understand the universe |