[wxpython-dev] 20090503 test build uploaded

I thought I give this a go to see how things are with Py 2.6.

Installed Python 2.6.2 on Windows 7rc1, installed wxPython 2.8.10.1.pre and Gui2Exe as the guinea pig application.

All is working pretty fine (only issue I saw is with the tip windows in Gui2Exe they in some cases flicker a lot), then I thought o.k. lets give py2exe (0.6.9) a go - here things are not great at all.

- got an error about msvcp90.dll not found, doing a bit of googling I found a message from T. Heller about using "install for me only". Doing this and copying all msvc?90.dll's to the Python26 folder got me to the point where py2exe would build without errors (except a deprecation warning about "import sets"), but trying to run the generated exe in the dist folder would just run for a second or so and never show anything on screen (that it run I saw in the Windows Task Manager) and no error log file was generated (at least I can not find it anywhere.

O.K., so I thought using Win7rc1 is maybe pushing it a bit too far.

So, installed it all on my Windows Vista machine.

Running it from the command line or just double clicking gui2exe.py in the explorer works fine.

When I build the .exe with py2exe I did not get any errors in relation to the .dll's but when I try to run it I see the same issue, just runs very shortly and no error log is generated.

Has anyone got this working on either Vista, XP or Win7?

Werner

Werner F. Bruhin wrote:
...

So, installed it all on my Windows Vista machine.

Running it from the command line or just double clicking gui2exe.py in the explorer works fine.

When I build the .exe with py2exe I did not get any errors in relation to the .dll's but when I try to run it I see the same issue, just runs very shortly and no error log is generated.

Just noticed that Gui2Exe was using Python 2.5 to compile, so when I changed that then it complained about the msvcp90.dll, when I copied them to the Vista Python26 folder the compile did not complain but it does not seem to complete (Andrea, shouldn't it ask if I want to run the compiled program when it is done?), however there is a .exe and all the support files in the dist folder. But when I try to run this I still see the same problem.

BTW, the py2exe options which could influence things are set as follows: Optimize = 0, Compressed = 0 and Bundle = 3, no zipfile is used and no Manifest is generated by Gui2Exe as I think that this is not needed anymore with the latest wxPython build.

Werner

Werner,

Werner F. Bruhin wrote:
...

So, installed it all on my Windows Vista machine.

Running it from the command line or just double clicking gui2exe.py in the explorer works fine.

When I build the .exe with py2exe I did not get any errors in relation to the .dll's but when I try to run it I see the same issue, just runs very shortly and no error log is generated.

Just noticed that Gui2Exe was using Python 2.5 to compile, so when I changed that then it complained about the msvcp90.dll, when I copied them to the Vista Python26 folder the compile did not complain but it does not seem to complete (Andrea, shouldn't it ask if I want to run the compiled program when it is done?), however there is a .exe and all the support files in the dist folder. But when I try to run this I still see the same problem.

BTW, the py2exe options which could influence things are set as follows: Optimize = 0, Compressed = 0 and Bundle = 3, no zipfile is used and no Manifest is generated by Gui2Exe as I think that this is not needed anymore with the latest wxPython build.

Werner

I keep meaning to give this a go...have you looked at either of the following links to see if they help?

http://www.tejerodgers.com/snippets/2009/why-wxpython-crashes-python-26/
http://www.tejerodgers.com/snippets/2009/how-to-load-common-controls-v6-with-python-code/

- Mike

Hi Werner,

Werner F. Bruhin wrote:
...

So, installed it all on my Windows Vista machine.

Running it from the command line or just double clicking gui2exe.py in the
explorer works fine.

When I build the .exe with py2exe I did not get any errors in relation to
the .dll's but when I try to run it I see the same issue, just runs very
shortly and no error log is generated.

Just noticed that Gui2Exe was using Python 2.5 to compile, so when I changed
that then it complained about the msvcp90.dll, when I copied them to the
Vista Python26 folder the compile did not complain but it does not seem to
complete (Andrea, shouldn't it ask if I want to run the compiled program
when it is done?), however there is a .exe and all the support files in the
dist folder. But when I try to run this I still see the same problem.

Yes, GUI2Exe should ask you if you want to run the executable program
once the compilation process is finished. I assume you didn't get any
error messages popping up from GUI2Exe while compiling with py2exe,
which means that py2exe has been started correctly as a separate
process. Did you notice if the constant stream of messages in the log
window stopped at some point? Or were they going on every half a
second without end? If they do not stop, either GUI2Exe is not picking
up the end of the compilation process (which is highly improbable, as
it is based on wx.Process), or py2exe is doing some veeeeeeery long
scanning with modulefinder. I remember seeing this very problem with
py2exe 0.6.9, when the building process took minutes to finish (but it
finished in the end).

If you could add some more information (based on what I wrote above),
I may be able to improve GUI2Exe and maybe we might be able to find
out what is going on, from wxPython and py2exe sides.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

···

On Tue, May 12, 2009 at 2:37 PM, Werner F. Bruhin wrote:

Hi Andrea,

Andrea Gavana wrote:
...

Yes, GUI2Exe should ask you if you want to run the executable program
once the compilation process is finished. I assume you didn't get any
error messages popping up from GUI2Exe while compiling with py2exe,
which means that py2exe has been started correctly as a separate
process. Did you notice if the constant stream of messages in the log
window stopped at some point? Or were they going on every half a
second without end? If they do not stop, either GUI2Exe is not picking
up the end of the compilation process (which is highly improbable, as
it is based on wx.Process), or py2exe is doing some veeeeeeery long
scanning with modulefinder. I remember seeing this very problem with
py2exe 0.6.9, when the building process took minutes to finish (but it
finished in the end).

If you could add some more information (based on what I wrote above),
I may be able to improve GUI2Exe and maybe we might be able to find
out what is going on, from wxPython and py2exe sides.
  

I see no error messages (except the deprecation for import sets one) and the message and actions window shows:
- finding required modules
- Byte-compiling Python files (5 times)
- Copying files

and then nothing, but then in the executable window (on the left) it updates the size and the file number.

Werner

Hi Werner,

I thought I give this a go to see how things are with Py 2.6.

Installed Python 2.6.2 on Windows 7rc1, installed wxPython 2.8.10.1.pre and Gui2Exe as the guinea pig application.

All is working pretty fine (only issue I saw is with the tip windows in Gui2Exe they in some cases flicker a lot), then I thought o.k. lets give py2exe (0.6.9) a go - here things are not great at all.

- got an error about msvcp90.dll not found, doing a bit of googling I found a message from T. Heller about using "install for me only". Doing this and copying all msvc?90.dll's to the Python26 folder got me to the point where py2exe would build without errors (except a deprecation warning about "import sets"), but trying to run the generated exe in the dist folder would just run for a second or so and never show anything on screen (that it run I saw in the Windows Task Manager) and no error log file was generated (at least I can not find it anywhere.

O.K., so I thought using Win7rc1 is maybe pushing it a bit too far.

So, installed it all on my Windows Vista machine.

Running it from the command line or just double clicking gui2exe.py in the explorer works fine.

When I build the .exe with py2exe I did not get any errors in relation to the .dll's but when I try to run it I see the same issue, just runs very shortly and no error log is generated.

Has anyone got this working on either Vista, XP or Win7?

I've gotten an app working with wxPy and py2exe, but to do so I had to copy all the msvcm90.dll and msvcp90.dll (along with the SxS manifest and msvcr90.dll in Python26) into my app manually. Have you checked that all those dlls exist in your packaged app?

Regards,

Kevin

···

On May 12, 2009, at 6:17 AM, Werner F. Bruhin wrote:

Werner

_______________________________________________
wxpython-users mailing list
wxpython-users@lists.wxwidgets.org
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users

Hi Werner,

Hi Andrea,

Andrea Gavana wrote:
...

Yes, GUI2Exe should ask you if you want to run the executable program
once the compilation process is finished. I assume you didn't get any
error messages popping up from GUI2Exe while compiling with py2exe,
which means that py2exe has been started correctly as a separate
process. Did you notice if the constant stream of messages in the log
window stopped at some point? Or were they going on every half a
second without end? If they do not stop, either GUI2Exe is not picking
up the end of the compilation process (which is highly improbable, as
it is based on wx.Process), or py2exe is doing some veeeeeeery long
scanning with modulefinder. I remember seeing this very problem with
py2exe 0.6.9, when the building process took minutes to finish (but it
finished in the end).

If you could add some more information (based on what I wrote above),
I may be able to improve GUI2Exe and maybe we might be able to find
out what is going on, from wxPython and py2exe sides.

I see no error messages (except the deprecation for import sets one) and the
message and actions window shows:
- finding required modules
- Byte-compiling Python files (5 times)
- Copying files

and then nothing, but then in the executable window (on the left) it updates
the size and the file number.

Uhm, by looking at the code logic in GUI2Exe this seems quite
impossible (it's not that I don't believe you, I just can't see how
this happens). What I do is:

- Read the input stream from the py2exe process => show an informative
message in the log;
- Read the error stream from the py2exe process => show an error
message in the log if the error stream is not empty;
- When the process is finished, show an informative message if the
compilation was succesful, or an error message if the error stream is
not empty.

As this is not happening, I am a bit confused now... what ca you see
if you choose "Builds" => "Show full build output"? Is there any error
message from py2exe? Have you tried exporting the setup.py file from
GUI2Exe and running it from the command line?

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

···

On Tue, May 12, 2009 at 3:48 PM, Werner F. Bruhin wrote:

Hi All,

Made a bit of progress at least on the Vista config (will check it later if this is enough for Win7 too).

I figured it out by changing the build to "Console" instead of "Window" and saw that there was an import error for "bsddb", as I was trying to build Gui2Exe which needs this but it puts it by default onto the exclude module list, so .......

So, at this point I have Py2.6 with wxPython 20090503 running on Vista and building with py2exe is fine too.

Again will try this later on on Win7 and then also try to run this executables on other machines (XP).

Werner

Mike,

Mike Driscoll wrote:

Werner,

...

I keep meaning to give this a go...have you looked at either of the following links to see if they help?

http://www.tejerodgers.com/snippets/2009/why-wxpython-crashes-python-26/
http://www.tejerodgers.com/snippets/2009/how-to-load-common-controls-v6-with-python-code/

I have seen these some time ago. With the latest wxPython build (dev preview) this does not seem to be necessary. See my other post, problem was an import error which caused a traceback which is not shown anywhere when building the exe as 'windows'.

Werner

Hi Kevin,

Kevin Ollivier wrote:
...

I've gotten an app working with wxPy and py2exe, but to do so I had to copy all the msvcm90.dll and msvcp90.dll (along with the SxS manifest and msvcr90.dll in Python26) into my app manually. Have you checked that all those dlls exist in your packaged app?

I had to put them into Python26 folder but they are not in the dist folder and as mentioned in my other post it runs. Currently only tested on the machine I built on. So, I will probably find that I need to copy these. Will post my findings after I do some more testing (windows 7 and running on a machine which does not have any Python/wxPython stuff installed).

Thanks
Werner

Andrea Gavana wrote:

Hi Werner,

Hi Andrea,

Andrea Gavana wrote:
...
    

Yes, GUI2Exe should ask you if you want to run the executable program
once the compilation process is finished. I assume you didn't get any
error messages popping up from GUI2Exe while compiling with py2exe,
which means that py2exe has been started correctly as a separate
process. Did you notice if the constant stream of messages in the log
window stopped at some point? Or were they going on every half a
second without end? If they do not stop, either GUI2Exe is not picking
up the end of the compilation process (which is highly improbable, as
it is based on wx.Process), or py2exe is doing some veeeeeeery long
scanning with modulefinder. I remember seeing this very problem with
py2exe 0.6.9, when the building process took minutes to finish (but it
finished in the end).

If you could add some more information (based on what I wrote above),
I may be able to improve GUI2Exe and maybe we might be able to find
out what is going on, from wxPython and py2exe sides.

I see no error messages (except the deprecation for import sets one) and the
message and actions window shows:
- finding required modules
- Byte-compiling Python files (5 times)
- Copying files

and then nothing, but then in the executable window (on the left) it updates
the size and the file number.
    
Uhm, by looking at the code logic in GUI2Exe this seems quite
impossible (it's not that I don't believe you, I just can't see how
this happens). What I do is:

- Read the input stream from the py2exe process => show an informative
message in the log;
- Read the error stream from the py2exe process => show an error
message in the log if the error stream is not empty;
- When the process is finished, show an informative message if the
compilation was succesful, or an error message if the error stream is
not empty.

As this is not happening, I am a bit confused now... what ca you see
if you choose "Builds" => "Show full build output"? Is there any error
message from py2exe? Have you tried exporting the setup.py file from
GUI2Exe and running it from the command line?

Andrea.
  
I've seen GUI2Exe do that too...I think it was when I first downloaded the 0.3 version...as I recall, I just had to shut it down and restart it and it starting asking me if I wanted to run the program again.

I haven't seen that since though. Sorry...I should have reported it then.

Mike

···

On Tue, May 12, 2009 at 3:48 PM, Werner F. Bruhin wrote:

Hi Andrea,

Andrea Gavana wrote:
...

Uhm, by looking at the code logic in GUI2Exe this seems quite
impossible (it's not that I don't believe you

No problems, it happens to me that I don't believe myself :slight_smile:

, I just can't see how
this happens). What I do is:

- Read the input stream from the py2exe process => show an informative
message in the log;
- Read the error stream from the py2exe process => show an error
message in the log if the error stream is not empty;
- When the process is finished, show an informative message if the
compilation was succesful, or an error message if the error stream is
not empty.

As this is not happening, I am a bit confused now... what ca you see
if you choose "Builds" => "Show full build output"? Is there any error
message from py2exe?

I'll attach the full output, it looks like it does not get to the end.

Have you tried exporting the setup.py file from
GUI2Exe and running it from the command line?
  

When I export it and run it from the command line then I have this (only partial, i.e. I won't include the beginning):
**** skipped some of the output ****

skipping byte-compilation of c:\python26\lib\types.py to types.pyc
skipping byte-compilation of c:\python26\lib\unittest.py to unittest.pyc
skipping byte-compilation of c:\python26\lib\urllib.py to urllib.pyc
skipping byte-compilation of c:\python26\lib\urllib2.py to urllib2.pyc
skipping byte-compilation of c:\python26\lib\urlparse.py to urlparse.pyc
skipping byte-compilation of c:\python26\lib\uu.py to uu.pyc
skipping byte-compilation of c:\python26\lib\warnings.py to warnings.pyc
skipping byte-compilation of c:\python26\lib\weakref.py to weakref.pyc
skipping byte-compilation of c:\python26\lib\webbrowser.py to webbrowser.pyc
skipping byte-compilation of c:\python26\lib\xml\__init__.py to xml\__init__.pyc
skipping byte-compilation of c:\python26\lib\xml\parsers\__init__.py to xml\parsers\__init__.py
skipping byte-compilation of c:\python26\lib\xml\parsers\expat.py to xml\parsers\expat.pyc
skipping byte-compilation of c:\python26\lib\xmllib.py to xmllib.pyc
skipping byte-compilation of c:\python26\lib\xmlrpclib.py to xmlrpclib.pyc
*** copy extensions ***
*** copy dlls ***
*** copy data files ***
copying c:\python26\lib\site-packages\py2exe\run.exe -> W:\devTest\gui2exe\dist\GUI2Exe.exe
The following modules appear to be missing
['Carbon', 'Carbon.Files', '_pybsddb', 'bsddb3.dbutils', 'dummy.Process', 'email.utils', 'py2ap

*** binary dependencies ***
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.

Make sure you have the license if you distribute any of them, and
make sure you don't distribute files belonging to the operating system.

   OLEAUT32.dll - C:\Windows\system32\OLEAUT32.dll
   USER32.dll - C:\Windows\system32\USER32.dll
   COMCTL32.dll - C:\Windows\system32\COMCTL32.dll
   SHELL32.dll - C:\Windows\system32\SHELL32.dll
   KERNEL32.dll - C:\Windows\system32\KERNEL32.dll
   WINMM.dll - C:\Windows\system32\WINMM.dll
   WSOCK32.dll - C:\Windows\system32\WSOCK32.dll
   MSVCP90.dll - c:\python26\MSVCP90.dll
   COMDLG32.dll - C:\Windows\system32\COMDLG32.dll
   ADVAPI32.dll - C:\Windows\system32\ADVAPI32.dll
   WS2_32.dll - C:\Windows\system32\WS2_32.dll
   GDI32.dll - C:\Windows\system32\GDI32.dll
   ole32.dll - C:\Windows\system32\ole32.dll
   gdiplus.dll - c:\python26\lib\site-packages\wx-2.8-msw-unicode\wx\gdiplus.dll
   RPCRT4.dll - C:\Windows\system32\RPCRT4.dll
running py2exe
*** searching for required modules ***
*** parsing results ***
creating python loader for extension 'select' (c:\python26\DLLs\select.pyd -> select.pyd)
creating python loader for extension 'unicodedata' (c:\python26\DLLs\unicodedata.pyd -> unicode
creating python loader for extension 'bz2' (c:\python26\DLLs\bz2.pyd -> bz2.pyd)
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
byte-compiling W:\devTest\gui2exe\build\bdist.win32\winexe\temp\bz2.py to bz2.pyc
byte-compiling W:\devTest\gui2exe\build\bdist.win32\winexe\temp\select.py to select.pyc
byte-compiling W:\devTest\gui2exe\build\bdist.win32\winexe\temp\unicodedata.py to unicodedata.p
skipping byte-compilation of c:\python26\lib\StringIO.py to StringIO.pyc
skipping byte-compilation of c:\python26\lib\UserDict.py to UserDict.pyc
skipping byte-compilation of c:\python26\lib\__future__.py to __future__.pyc
skipping byte-compilation of c:\python26\lib\_abcoll.py to _abcoll.pyc
skipping byte-compilation of c:\python26\lib\_strptime.py to _strptime.pyc
skipping byte-compilation of c:\python26\lib\_threading_local.py to _threading_local.pyc
skipping byte-compilation of c:\python26\lib\abc.py to abc.pyc
skipping byte-compilation of c:\python26\lib\atexit.py to atexit.pyc
skipping byte-compilation of c:\python26\lib\base64.py to base64.pyc
skipping byte-compilation of c:\python26\lib\bdb.py to bdb.pyc
skipping byte-compilation of c:\python26\lib\bisect.py to bisect.pyc
skipping byte-compilation of c:\python26\lib\calendar.py to calendar.pyc
skipping byte-compilation of c:\python26\lib\cmd.py to cmd.pyc
skipping byte-compilation of c:\python26\lib\codecs.py to codecs.pyc
skipping byte-compilation of c:\python26\lib\collections.py to collections.pyc
skipping byte-compilation of c:\python26\lib\copy.py to copy.pyc
skipping byte-compilation of c:\python26\lib\copy_reg.py to copy_reg.pyc
skipping byte-compilation of c:\python26\lib\difflib.py to difflib.pyc
skipping byte-compilation of c:\python26\lib\dis.py to dis.pyc
skipping byte-compilation of c:\python26\lib\doctest.py to doctest.pyc
skipping byte-compilation of c:\python26\lib\dummy_thread.py to dummy_thread.pyc
skipping byte-compilation of c:\python26\lib\encodings\__init__.py to encodings\__init__.pyc
skipping byte-compilation of c:\python26\lib\encodings\aliases.py to encodings\aliases.pyc
skipping byte-compilation of c:\python26\lib\encodings\ascii.py to encodings\ascii.pyc
skipping byte-compilation of c:\python26\lib\encodings\base64_codec.py to encodings\base64_code
skipping byte-compilation of c:\python26\lib\encodings\big5.py to encodings\big5.pyc
skipping byte-compilation of c:\python26\lib\encodings\big5hkscs.py to encodings\big5hkscs.pyc
skipping byte-compilation of c:\python26\lib\encodings\bz2_codec.py to encodings\bz2_codec.pyc
skipping byte-compilation of c:\python26\lib\encodings\charmap.py to encodings\charmap.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp037.py to encodings\cp037.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1006.py to encodings\cp1006.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1026.py to encodings\cp1026.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1140.py to encodings\cp1140.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1250.py to encodings\cp1250.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1251.py to encodings\cp1251.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1252.py to encodings\cp1252.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1253.py to encodings\cp1253.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1254.py to encodings\cp1254.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1255.py to encodings\cp1255.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1256.py to encodings\cp1256.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1257.py to encodings\cp1257.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp1258.py to encodings\cp1258.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp424.py to encodings\cp424.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp437.py to encodings\cp437.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp500.py to encodings\cp500.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp737.py to encodings\cp737.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp775.py to encodings\cp775.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp850.py to encodings\cp850.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp852.py to encodings\cp852.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp855.py to encodings\cp855.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp856.py to encodings\cp856.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp857.py to encodings\cp857.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp860.py to encodings\cp860.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp861.py to encodings\cp861.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp862.py to encodings\cp862.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp863.py to encodings\cp863.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp864.py to encodings\cp864.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp865.py to encodings\cp865.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp866.py to encodings\cp866.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp869.py to encodings\cp869.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp874.py to encodings\cp874.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp875.py to encodings\cp875.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp932.py to encodings\cp932.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp949.py to encodings\cp949.pyc
skipping byte-compilation of c:\python26\lib\encodings\cp950.py to encodings\cp950.pyc
skipping byte-compilation of c:\python26\lib\encodings\euc_jis_2004.py to encodings\euc_jis_200
skipping byte-compilation of c:\python26\lib\encodings\euc_jisx0213.py to encodings\euc_jisx021
skipping byte-compilation of c:\python26\lib\encodings\euc_jp.py to encodings\euc_jp.pyc
skipping byte-compilation of c:\python26\lib\encodings\euc_kr.py to encodings\euc_kr.pyc
skipping byte-compilation of c:\python26\lib\encodings\gb18030.py to encodings\gb18030.pyc
skipping byte-compilation of c:\python26\lib\encodings\gb2312.py to encodings\gb2312.pyc
skipping byte-compilation of c:\python26\lib\encodings\gbk.py to encodings\gbk.pyc
skipping byte-compilation of c:\python26\lib\encodings\hex_codec.py to encodings\hex_codec.pyc
skipping byte-compilation of c:\python26\lib\encodings\hp_roman8.py to encodings\hp_roman8.pyc
skipping byte-compilation of c:\python26\lib\encodings\hz.py to encodings\hz.pyc
skipping byte-compilation of c:\python26\lib\encodings\idna.py to encodings\idna.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso2022_jp.py to encodings\iso2022_jp.py
skipping byte-compilation of c:\python26\lib\encodings\iso2022_jp_1.py to encodings\iso2022_jp_
skipping byte-compilation of c:\python26\lib\encodings\iso2022_jp_2.py to encodings\iso2022_jp_
skipping byte-compilation of c:\python26\lib\encodings\iso2022_jp_2004.py to encodings\iso2022_
skipping byte-compilation of c:\python26\lib\encodings\iso2022_jp_3.py to encodings\iso2022_jp_
skipping byte-compilation of c:\python26\lib\encodings\iso2022_jp_ext.py to encodings\iso2022_j
skipping byte-compilation of c:\python26\lib\encodings\iso2022_kr.py to encodings\iso2022_kr.py
skipping byte-compilation of c:\python26\lib\encodings\iso8859_1.py to encodings\iso8859_1.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_10.py to encodings\iso8859_10.py
skipping byte-compilation of c:\python26\lib\encodings\iso8859_11.py to encodings\iso8859_11.py
skipping byte-compilation of c:\python26\lib\encodings\iso8859_13.py to encodings\iso8859_13.py
skipping byte-compilation of c:\python26\lib\encodings\iso8859_14.py to encodings\iso8859_14.py
skipping byte-compilation of c:\python26\lib\encodings\iso8859_15.py to encodings\iso8859_15.py
skipping byte-compilation of c:\python26\lib\encodings\iso8859_16.py to encodings\iso8859_16.py
skipping byte-compilation of c:\python26\lib\encodings\iso8859_2.py to encodings\iso8859_2.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_3.py to encodings\iso8859_3.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_4.py to encodings\iso8859_4.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_5.py to encodings\iso8859_5.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_6.py to encodings\iso8859_6.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_7.py to encodings\iso8859_7.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_8.py to encodings\iso8859_8.pyc
skipping byte-compilation of c:\python26\lib\encodings\iso8859_9.py to encodings\iso8859_9.pyc
skipping byte-compilation of c:\python26\lib\encodings\johab.py to encodings\johab.pyc
skipping byte-compilation of c:\python26\lib\encodings\koi8_r.py to encodings\koi8_r.pyc
skipping byte-compilation of c:\python26\lib\encodings\koi8_u.py to encodings\koi8_u.pyc
skipping byte-compilation of c:\python26\lib\encodings\latin_1.py to encodings\latin_1.pyc
skipping byte-compilation of c:\python26\lib\encodings\mac_arabic.py to encodings\mac_arabic.py
skipping byte-compilation of c:\python26\lib\encodings\mac_centeuro.py to encodings\mac_centeur
skipping byte-compilation of c:\python26\lib\encodings\mac_croatian.py to encodings\mac_croatia
skipping byte-compilation of c:\python26\lib\encodings\mac_cyrillic.py to encodings\mac_cyrilli
skipping byte-compilation of c:\python26\lib\encodings\mac_farsi.py to encodings\mac_farsi.pyc
skipping byte-compilation of c:\python26\lib\encodings\mac_greek.py to encodings\mac_greek.pyc
skipping byte-compilation of c:\python26\lib\encodings\mac_iceland.py to encodings\mac_iceland.
skipping byte-compilation of c:\python26\lib\encodings\mac_latin2.py to encodings\mac_latin2.py
skipping byte-compilation of c:\python26\lib\encodings\mac_roman.py to encodings\mac_roman.pyc
skipping byte-compilation of c:\python26\lib\encodings\mac_romanian.py to encodings\mac_romania
skipping byte-compilation of c:\python26\lib\encodings\mac_turkish.py to encodings\mac_turkish.
skipping byte-compilation of c:\python26\lib\encodings\mbcs.py to encodings\mbcs.pyc
skipping byte-compilation of c:\python26\lib\encodings\palmos.py to encodings\palmos.pyc
skipping byte-compilation of c:\python26\lib\encodings\ptcp154.py to encodings\ptcp154.pyc
skipping byte-compilation of c:\python26\lib\encodings\punycode.py to encodings\punycode.pyc
skipping byte-compilation of c:\python26\lib\encodings\quopri_codec.py to encodings\quopri_code
skipping byte-compilation of c:\python26\lib\encodings\raw_unicode_escape.py to encodings\raw_u
skipping byte-compilation of c:\python26\lib\encodings\rot_13.py to encodings\rot_13.pyc
skipping byte-compilation of c:\python26\lib\encodings\shift_jis.py to encodings\shift_jis.pyc
skipping byte-compilation of c:\python26\lib\encodings\shift_jis_2004.py to encodings\shift_jis
skipping byte-compilation of c:\python26\lib\encodings\shift_jisx0213.py to encodings\shift_jis
skipping byte-compilation of c:\python26\lib\encodings\string_escape.py to encodings\string_esc
skipping byte-compilation of c:\python26\lib\encodings\tis_620.py to encodings\tis_620.pyc
skipping byte-compilation of c:\python26\lib\encodings\undefined.py to encodings\undefined.pyc
skipping byte-compilation of c:\python26\lib\encodings\unicode_escape.py to encodings\unicode_e
skipping byte-compilation of c:\python26\lib\encodings\unicode_internal.py to encodings\unicode
skipping byte-compilation of c:\python26\lib\encodings\utf_16.py to encodings\utf_16.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_16_be.py to encodings\utf_16_be.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_16_le.py to encodings\utf_16_le.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_32.py to encodings\utf_32.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_32_be.py to encodings\utf_32_be.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_32_le.py to encodings\utf_32_le.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_7.py to encodings\utf_7.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_8.py to encodings\utf_8.pyc
skipping byte-compilation of c:\python26\lib\encodings\utf_8_sig.py to encodings\utf_8_sig.pyc
skipping byte-compilation of c:\python26\lib\encodings\uu_codec.py to encodings\uu_codec.pyc
skipping byte-compilation of c:\python26\lib\encodings\zlib_codec.py to encodings\zlib_codec.py
skipping byte-compilation of c:\python26\lib\functools.py to functools.pyc
skipping byte-compilation of c:\python26\lib\genericpath.py to genericpath.pyc
skipping byte-compilation of c:\python26\lib\getopt.py to getopt.pyc
skipping byte-compilation of c:\python26\lib\gettext.py to gettext.pyc
skipping byte-compilation of c:\python26\lib\heapq.py to heapq.pyc
skipping byte-compilation of c:\python26\lib\inspect.py to inspect.pyc
skipping byte-compilation of c:\python26\lib\keyword.py to keyword.pyc
skipping byte-compilation of c:\python26\lib\linecache.py to linecache.pyc
skipping byte-compilation of c:\python26\lib\locale.py to locale.pyc
skipping byte-compilation of c:\python26\lib\ntpath.py to ntpath.pyc
skipping byte-compilation of c:\python26\lib\opcode.py to opcode.pyc
skipping byte-compilation of c:\python26\lib\optparse.py to optparse.pyc
skipping byte-compilation of c:\python26\lib\os.py to os.pyc
skipping byte-compilation of c:\python26\lib\os2emxpath.py to os2emxpath.pyc
skipping byte-compilation of c:\python26\lib\pdb.py to pdb.pyc
skipping byte-compilation of c:\python26\lib\pickle.py to pickle.pyc
skipping byte-compilation of c:\python26\lib\posixpath.py to posixpath.pyc
skipping byte-compilation of c:\python26\lib\pprint.py to pprint.pyc
skipping byte-compilation of c:\python26\lib\quopri.py to quopri.pyc
skipping byte-compilation of c:\python26\lib\random.py to random.pyc
skipping byte-compilation of c:\python26\lib\re.py to re.pyc
skipping byte-compilation of c:\python26\lib\repr.py to repr.pyc
skipping byte-compilation of c:\python26\lib\shlex.py to shlex.pyc
skipping byte-compilation of c:\python26\lib\sre.py to sre.pyc
skipping byte-compilation of c:\python26\lib\sre_compile.py to sre_compile.pyc
skipping byte-compilation of c:\python26\lib\sre_constants.py to sre_constants.pyc
skipping byte-compilation of c:\python26\lib\sre_parse.py to sre_parse.pyc
skipping byte-compilation of c:\python26\lib\stat.py to stat.pyc
skipping byte-compilation of c:\python26\lib\string.py to string.pyc
skipping byte-compilation of c:\python26\lib\stringprep.py to stringprep.pyc
skipping byte-compilation of c:\python26\lib\struct.py to struct.pyc
skipping byte-compilation of c:\python26\lib\subprocess.py to subprocess.pyc
skipping byte-compilation of c:\python26\lib\tempfile.py to tempfile.pyc
skipping byte-compilation of c:\python26\lib\textwrap.py to textwrap.pyc
skipping byte-compilation of c:\python26\lib\threading.py to threading.pyc
skipping byte-compilation of c:\python26\lib\token.py to token.pyc
skipping byte-compilation of c:\python26\lib\tokenize.py to tokenize.pyc
skipping byte-compilation of c:\python26\lib\traceback.py to traceback.pyc
skipping byte-compilation of c:\python26\lib\types.py to types.pyc
skipping byte-compilation of c:\python26\lib\unittest.py to unittest.pyc
skipping byte-compilation of c:\python26\lib\warnings.py to warnings.pyc
*** copy extensions ***
*** copy dlls ***

*** binary dependencies ***
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.

Make sure you have the license if you distribute any of them, and
make sure you don't distribute files belonging to the operating system.

   WSOCK32.dll - C:\Windows\system32\WSOCK32.dll
   USER32.dll - C:\Windows\system32\USER32.dll
   ADVAPI32.dll - C:\Windows\system32\ADVAPI32.dll
   SHELL32.dll - C:\Windows\system32\SHELL32.dll
   KERNEL32.dll - C:\Windows\system32\KERNEL32.dll

Hope this is helpful
Werner

BuildOutput.txt (31.3 KB)

Hi Kevin,

Kevin Ollivier wrote:
...

I've gotten an app working with wxPy and py2exe, but to do so I had to copy all the msvcm90.dll and msvcp90.dll (along with the SxS manifest and msvcr90.dll in Python26) into my app manually. Have you checked that all those dlls exist in your packaged app?

Trying to run the exe generated on Vista on my XP machine I get a "App not correctly configured error, try to reinstall".

Even after copying of the above dll's, however I can not find an SxS manifest - where did you get yours from? Can you post it? I think I had one on my Win7 machine when I installed Python 2.6.2 for all users, but then read in a post by Thomas Heller that doing a "for me only" install fixes some of the issues he had.

Werner

Werner F. Bruhin wrote:

Hi Kevin,

Kevin Ollivier wrote:
...

I've gotten an app working with wxPy and py2exe, but to do so I had to copy all the msvcm90.dll and msvcp90.dll (along with the SxS manifest and msvcr90.dll in Python26) into my app manually. Have you checked that all those dlls exist in your packaged app?

I had to put them into Python26 folder but they are not in the dist folder and as mentioned in my other post it runs. Currently only tested on the machine I built on. So, I will probably find that I need to copy these. Will post my findings after I do some more testing (windows 7 and running on a machine which does not have any Python/wxPython stuff installed).

I haven't tried py2exe with Py2.6 myself yet, so at this point all of this is just speculation and pulling tidbits from foggy memories:

* If Python has been installed "for all users" then the VC90.CRT will have been installed globally as a side-by-side assembly. (It may also have been installed this way by some other app as well.) If this is the case then any app that uses a manifest to load that assembly will be able to find it.

* MS provides a "vcredist" package available that can be used to install the CRT SxS assembly if you don't already have it. You can also include this with and run it from your installers if you want to give your users an option similar to Python's "for all users."

* There is also a way to install the CRT as a "local assembly" alongside your application. I don't remember any details but I think it is just a matter of having a correctly named subfolder with the DLLs and a manifest file in it.

* For all this to work I think that the .exe generated from py2exe will probably need a manifest that specifies the VC90.CRT assembly. (You can let wxPython's custom activation context still deal with the common controls, but you'll need the CRT to start up the executable.) Try using one like the attached, which I pulled out of the python executable.

It sounds like you've already seen this, but just in case:
http://www.nabble.com/Re%3A-py2exe%2C-Py26%2C-wxPython-and-dll-p20587754.html

python-2.6.2.exe.manifest (655 Bytes)

···

--
Robin Dunn
Software Craftsman

Mike Driscoll wrote:

I keep meaning to give this a go...have you looked at either of the following links to see if they help?

http://www.tejerodgers.com/snippets/2009/why-wxpython-crashes-python-26/
http://www.tejerodgers.com/snippets/2009/how-to-load-common-controls-v6-with-python-code/

These issues have been resolved in the current build. wxPython now bypasses the problem by dynamically creating its own Activation Context and loading into it a manifest with the proper mojo. It uses the one embedded in the _core_.pyd module.

···

--
Robin Dunn
Software Craftsman

Hi Werner,

Hi Kevin,

Kevin Ollivier wrote:
...

I've gotten an app working with wxPy and py2exe, but to do so I had to copy all the msvcm90.dll and msvcp90.dll (along with the SxS manifest and msvcr90.dll in Python26) into my app manually. Have you checked that all those dlls exist in your packaged app?

Trying to run the exe generated on Vista on my XP machine I get a "App not correctly configured error, try to reinstall".

Even after copying of the above dll's, however I can not find an SxS manifest - where did you get yours from? Can you post it? I think I had one on my Win7 machine when I installed Python 2.6.2 for all users, but then read in a post by Thomas Heller that doing a "for me only" install fixes some of the issues he had.

When I did a "for this user only" install, and it put a "Microsoft.VC90.CRT.manifest" file in my C:\Python26 directory. That's the one I used.

Regards,

Kevin

···

On May 12, 2009, at 10:16 AM, Werner F. Bruhin wrote:

Werner

_______________________________________________
wxpython-users mailing list
wxpython-users@lists.wxwidgets.org
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users

Kevin, Robin, Mike, Andrea and others,

It looks like we got it - see below.

Kevin Ollivier wrote:
...

When I did a "for this user only" install, and it put a "Microsoft.VC90.CRT.manifest" file in my C:\Python26 directory. That's the one I used.

O.k. I reinstalled Py26 "for this user only" and copied the manifest which got installed into the Python26 folder (must have moved it during all the testing yesterday and lost it along the line) to the py2exe "dist" folder and copied also the three .dll files (msvcm90.dll, msvcp90.dll and msvcr90.dll) to the "dist" folder too. Note that Py26 is only including msvcr90.dll but at least msvcp90.dll is needed for wxPython, I am not sure if the msvcm90.dll is needed but as it is named in the manifest file I just copied it too.

BTW, the dll provided with Py26 is version 9.0.21022.8, and on the pretty blank install of Win7 I have another copy slightly newer v 9.0.30729.4918.

Any chance that wxPython could include these three dll's with the corresponding manifest file? Especially as the manifest refers to the version it would be good to get the one which was used for wx (maybe not install it but just provide it in a folder so we can use it when we package with py2exe and we can be sure that we have the right version).

The generated exe (still using Gui2Exe for this, i.e. it builds its own exe :slight_smile: ) run without problem on Win Vista and Win7 (both have Py26 installed) and on Win XP and Win 2000 and these last two have no Python installation. The first three look fine with regards to the theme being used, the last one looks a bit old :wink: , but still correct.

Will continue doing testing on this (install all the stuff I use in Py26 - sqlalchemy, kinterbasdb, amara, matplotlib, numpy, PIL, ObjectListView, pytz etc) over the next few weeks whenever I get a moment.

Andrea, maybe add a new option or enhance the existing manifest generation to also generate the VC90.crt manifest?

Werner

Microsoft.VC90.CRT.manifest (511 Bytes)

Hi Werner & All,

Kevin, Robin, Mike, Andrea and others,

It looks like we got it - see below.

Kevin Ollivier wrote:
...

When I did a "for this user only" install, and it put a
"Microsoft.VC90.CRT.manifest" file in my C:\Python26 directory. That's the
one I used.

O.k. I reinstalled Py26 "for this user only" and copied the manifest which
got installed into the Python26 folder (must have moved it during all the
testing yesterday and lost it along the line) to the py2exe "dist" folder
and copied also the three .dll files (msvcm90.dll, msvcp90.dll and
msvcr90.dll) to the "dist" folder too. Note that Py26 is only including
msvcr90.dll but at least msvcp90.dll is needed for wxPython, I am not sure
if the msvcm90.dll is needed but as it is named in the manifest file I just
copied it too.

BTW, the dll provided with Py26 is version 9.0.21022.8, and on the pretty
blank install of Win7 I have another copy slightly newer v 9.0.30729.4918.

Any chance that wxPython could include these three dll's with the
corresponding manifest file? Especially as the manifest refers to the
version it would be good to get the one which was used for wx (maybe not
install it but just provide it in a folder so we can use it when we package
with py2exe and we can be sure that we have the right version).

The generated exe (still using Gui2Exe for this, i.e. it builds its own exe
:slight_smile: ) run without problem on Win Vista and Win7 (both have Py26 installed)
and on Win XP and Win 2000 and these last two have no Python installation.
The first three look fine with regards to the theme being used, the last one
looks a bit old :wink: , but still correct.

Will continue doing testing on this (install all the stuff I use in Py26 -
sqlalchemy, kinterbasdb, amara, matplotlib, numpy, PIL, ObjectListView, pytz
etc) over the next few weeks whenever I get a moment.

Andrea, maybe add a new option or enhance the existing manifest generation
to also generate the VC90.crt manifest?

It should be possible to do it, but I have a couple of questions based
on the manifest file Robin has sent:

<snip>
<snap>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
version="9.0.21022.8" processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>

Is there any way to retrieve the CRT version (in this case
9.0.21022.8)? What is this publicKeyToken and how do I generate it?

I also plan to update GUI2Exe using AUI instead of wxAUI and replacing
the wx.ListCtrl instances with UltimateListCtrl ones, assuming some
kind soul can test UltimateListCtrl on the Mac... This is because I
have got complains about the appearance/disappearance of the "browse"
button in the list control and about the "unnatural" behaviour of my
listcontrol implementation.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

···

On Wed, May 13, 2009 at 9:24 AM, Werner F. Bruhin wrote:

Andrea Gavana wrote:

Hi Werner & All,
  

....

Andrea, maybe add a new option or enhance the existing manifest generation
to also generate the VC90.crt manifest?
    
It should be possible to do it, but I have a couple of questions based
on the manifest file Robin has sent:

<snip>
<snap>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
version="9.0.21022.8" processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>

Is there any way to retrieve the CRT version (in this case
9.0.21022.8)? What is this publicKeyToken and how do I generate it?
  

How do you obtain it, as it seems to be related to the software publisher (i.e. MS in this case), see here:

Apparently Pktextract.exe can extract it, see here:

Also note that Version number is significant, see here:

It notes that one gets an error (the same I got without manifest) if there is a version mismatch between the manifest and the dll's.

I was also wondering why the one provided with Py2.6.2 is different to the one Robin had attached, also he got it from Py2.6.2 also?

Werner

Hi Werner & All,

Andrea Gavana wrote:

Hi Werner & All,

....

Andrea, maybe add a new option or enhance the existing manifest
generation
to also generate the VC90.crt manifest?

It should be possible to do it, but I have a couple of questions based
on the manifest file Robin has sent:

<snip>
<snap>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
version="9.0.21022.8" processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>

Is there any way to retrieve the CRT version (in this case
9.0.21022.8)? What is this publicKeyToken and how do I generate it?

How do you obtain it, as it seems to be related to the software publisher
(i.e. MS in this case), see here:
MCAD/MCSD Training Guide (70-320): Developing XML Web Services and Server ... - Amit Kalani, Priti Kalani, Ed Tittel - Google Livres

Apparently Pktextract.exe can extract it, see here:
Pktextract.exe - Win32 apps

Also note that Version number is significant, see here:
Bing

It notes that one gets an error (the same I got without manifest) if there
is a version mismatch between the manifest and the dll's.

I found out that getting the correct version of the CRT is quite
simple (assuming you have Mark Hammond win32all installed):

import win32api

fname = FindTheCRTDLLInSomeWay()

pairs = win32api.GetFileVersionInfo(fname, '\\VarFileInfo\\Translation')
# \VarFileInfo\Translation returns list of available (language, codepage)
# pairs that can be used to retreive string info. Any other must be of the
# form \StringfileInfo\%04X%04X\parm_name, middle two are language/codepage
# pair returned from above

for lang, codepage in pairs:
    str_info = u'\\StringFileInfo\\%04X%04X\\%s' %(lang, codepage,
"ProductVersion")
    DLLVERSION = win32api.GetFileVersionInfo(fname, str_info)

But, as far as the publicKeyToken is concerned, I am at lost. The
articles you have included speak about some kind of "certificate
file", and I have absolutely no idea what that means and what they are
supposed to do. If we can come up with a solution for this
publicKeyToken issue I'll modify GUI2Exe to handle manifest files for
Python >= 2.6 and Vista.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

···

On Wed, May 13, 2009 at 4:57 PM, Werner F. Bruhin wrote: