From: David F. <dfi...@ho...> - 2006-07-29 00:52:27
|
I observed an issue while using py2exe on multiple targets: setup.py: from distutils.core import setup import py2exe setup(console=["targetA.py"]) setup(console=["targetB.py"]) If the set of imported modules in the scripts is different in targetA then targetB: targetA: import os,shutil,re,sys targetB: import os,re,stat Using 'python setup.py py2exe -b1' generates both executables, library.zip and the MSVCR71.dll, but targetA will not execute because the library.zip file does not contain the required shutil module. Flipping the order in the setup file: setup(console=["targetB.py"]) setup(console=["targetA.py"]) Will make targetB not execute as it is missing the required stat module from the library.zip file, but targetA will now execute. It appears the second process overwrites the contents of the library.zip file. The easy work-around is to make sure the sets of imported modules are the same for both script before translation to executables. 1) wanted to inform the list members of this observation. 2) It would be nice not to have to concern myself with this constraint, and will leave it as a request for enhancement. dave |
From: Bruno T. <bru...@fr...> - 2006-07-29 16:17:14
|
David Figgins wrote : > I observed an issue while using py2exe on multiple targets: > > setup.py: > from distutils.core import setup > import py2exe > > setup(console=["targetA.py"]) > setup(console=["targetB.py"]) > hi, try this in your setup... ## ----------------------------- from distutils.core import setup import py2exe setup( [...] console=[ {'icon_resources': [(0, 'your.icon')], 'script': 'your.targetA'}, {'icon_resources': [(0, 'your.icon')], 'script': 'your.targetA'} ], [...] ) ## ----------------------------- if you have no icon, replace by an empty list... {'icon_resources': [],[...] Bruno |
From: Mark H. <mha...@sk...> - 2006-07-29 16:33:05
|
> I observed an issue while using py2exe on multiple targets: > > setup.py: > from distutils.core import setup > import py2exe > > setup(console=["targetA.py"]) > setup(console=["targetB.py"]) > > > If the set of imported modules in the scripts is different in targetA > then targetB: > > targetA: > import os,shutil,re,sys > > targetB: > import os,re,stat > > > Using 'python setup.py py2exe -b1' > generates both executables, library.zip and the MSVCR71.dll, > but targetA will not execute because the library.zip file does > not contain the required shutil module. > > Flipping the order in the setup file: > setup(console=["targetB.py"]) > setup(console=["targetA.py"]) Why not use: setup(console=['targetA.py', 'targetB.py']) This is exactly why the argument is expected to be a list. Your example is no different than invoking py2exe multiple times with different top-level setup scripts - and in that case you really would expect library.zip to be updated. Cheers, Mark |
From: David F. <dfi...@ho...> - 2006-07-29 17:25:10
|
> > Why not use: > > setup(console=['targetA.py', 'targetnB.py']) > > This is exactly why the argument is expected to be a list. > > Your example is no different than invoking py2exe multiple times with > different top-level setup scripts - and in that case you really would expect > library.zip to be updated. > > Cheers, > > Mark > > > Thanks Mark, Looks like the obvious answer was in plain sight! Makes sense to me now.... dave |