py2exe question

A

achrist

The py2exe says that a console app should have the --console option
and a windows app should have the --windows option.

What is the way to py2exe a python program that uses both console and
windows gui?

TIA

Al
 
A

Alex Martelli

The py2exe says that a console app should have the --console option
and a windows app should have the --windows option.

What is the way to py2exe a python program that uses both console and
windows gui?

Haven't tried, but logically it should be a console -- this doesn't restrict
what OTHER modules you can import, it just uses the equivalent of a .py
script run with python.exe rather than a .pyw run with pythonw.exe, i.e. a
"DOS box" console does appear when the program is run.


Alex
 
A

achrist

Alex said:
what OTHER modules you can import, it just uses the equivalent of a .py
script run with python.exe rather than a .pyw run with pythonw.exe, i.e. a
"DOS box" console does appear when the program is run.

Logically, you don't need these switches. Outside of py2exe a *.py
gets a console and can open gui windows, a *.pyw is a pure gui
program. Why the switches atall? IDK? Thought I'd ask.

I'm having a little trouble getting a py2exe executable to run on
a machine wo python installed. Just wondered if this has anything to
do with it.


Al
 
A

Alex Martelli

Logically, you don't need these switches. Outside of py2exe a *.py

Logically, maybe not, but if you have chosen to run Windows instead,
how do you avoid them? An EXE needs to let the OS know, via switches,
if it wants a console or not -- that's all there is to it.
gets a console and can open gui windows, a *.pyw is a pure gui

Not really: you can run either a .py or .pyw mainscript (and other
extensions yet) with either pyhon.exe or pythonw.exe. Which EXE
you choose to run as your interpreter is the one that either gets
a console or doesn't -- because Windows associates a console (or
lack thereof) with an EXE. By default most Python installers set
registry associations of the two extensions .py and .pyw with the
two interpreter executables in question -- that may be what's
confusing you. But that's just a default that determines what
the Windows GUI shell is going to do when you doubleclic a file
with such an extension, etc -- you can still perfectly well run
e.g. a .pyw mainscript with python.exe from a console (e.g. so you
can see error messages, warnings etc in the console window).
program. Why the switches atall? IDK? Thought I'd ask.

The switches let you control what goes on explicitly, just as
you can control it explicitly by choosing one or the other of
the two interpreters (python.exe or pythonw.exe) at a command
prompt. I don't know what you mean by the 'idk' question.
I'm having a little trouble getting a py2exe executable to run on
a machine wo python installed. Just wondered if this has anything to
do with it.

I don't see the connection.


Alex
 
A

achrist

The error I'm getting is in module imputil.pyo, line 601, in
import_file, module does not define init function initpywintypes23.

Please, can anyone tell what this means and how to fix?

TIA


Al
 
A

Alex Martelli

The error I'm getting is in module imputil.pyo, line 601, in
import_file, module does not define init function initpywintypes23.

Please, can anyone tell what this means and how to fix?

A C-coded Python extension module named XXX _must_ define (and
export) a function named initXXX so that Python knows how to
initialize it. This error message means that a module named
pywintypes23.PYD (or .DLL) does exist, but fails to define and
export the needed function. You might double-check about the
module's existence - I can imagine anomalous cases where this
message (somewhat misleadingly) might end up being given for
modules that just don't exist, though I don't think py2exe could
cause such anomalies (but it's a while since I studied it).

If you _do_ find the pywintypes23.PYD you can check what it
does define-and-export -- but you need some tools for that
(I'm pretty sure there are downloadable ones though). But
fixing it sounds harder...


Alex
 
T

Thomas Heller

The error I'm getting is in module imputil.pyo, line 601, in
import_file, module does not define init function initpywintypes23.

Please, can anyone tell what this means and how to fix?

I think it has to do with the way win32all finds and loads the
PyWinTypes extension. Back in the past it was found via registry
entries, nowadays Mark Hammond changed it to be done without the
registry.

py2exe up to version 0.4.2 has not be adapted to this change, but the
0.5.0 alpha version (available in the files section of
http://sf.net/projects/py2exe) is able to handle this.

It requires Python 2.3 (because it uses the new zipimport feature), and
a fairly new win32all.

Thomas
 
A

achrist

Thomas said:
py2exe up to version 0.4.2 has not be adapted to this change, but the
0.5.0 alpha version (available in the files section of
http://sf.net/projects/py2exe) is able to handle this.

Looks like 0.5.0a is not picking up any of my command line arguments
or producing any executable when I run it through the same batch
file that worked for 0.4.2.

Any docs on how to make if work?


Al
 
C

Chris Liechti

Looks like 0.5.0a is not picking up any of my command line arguments
or producing any executable when I run it through the same batch
file that worked for 0.4.2.

Any docs on how to make if work?

there is an example in the lib/site-packages/py2exe/samples dir
the syntax of the setup call is different

chris
 
A

achrist

Chris said:
there is an example in the lib/site-packages/py2exe/samples dir
the syntax of the setup call is different

I try to run the sample to see what comes out, and I get:

tlb = pythoncom.LoadRegTypeLib(typelibCLSID, major, minor, lcid)
pywintypes.com_error: (-2147319779, 'Library not registered.', None,
None)

I just installed win32all v161 last night.


Al
 
C

Chris Liechti

I try to run the sample to see what comes out, and I get:

tlb = pythoncom.LoadRegTypeLib(typelibCLSID, major, minor, lcid)
pywintypes.com_error: (-2147319779, 'Library not registered.', None,
None)

just comment out the line with the "typelib" in it and do not build the COM
example. the com example seems torequire that makepy is run in advance, so
that the typlib is there.

the other examples worked fine for me.

chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,169
Messages
2,570,919
Members
47,460
Latest member
eibafima

Latest Threads

Top