Re: [Pythonmac-SIG] Question about py2app packages and includes options

2012-07-18 Thread Ronald Oussoren

On 18 Jul, 2012, at 0:25, Chris Barker wrote:
 
 
 It's a big ugly, but I've managed to put packages into the zip with
 something like this:
 
 includes = [package,
package.subpackage
package.subpackage.module1
package.subpackage.module2
 ]
 
 for some reason (is it a bug? -- or has it been fixed?) doing:
 
 includes = [ package.subpackage.module]
 
 puts module in the root, so it's there but can't be imported the same way.

I don't think this is fixed yet, I've added an item to the py2app tracker for 
this: https://bitbucket.org/ronaldoussoren/py2app/issue/52

Ronald



smime.p7s
Description: S/MIME cryptographic signature
___
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG


Re: [Pythonmac-SIG] Question about py2app packages and includes options

2012-07-18 Thread Michael McCracken
On Wed, Jul 18, 2012 at 11:14 AM, Chris Barker chris.bar...@noaa.gov wrote:
 On Tue, Jul 17, 2012 at 3:49 PM, Michael McCracken
 michael.mccrac...@gmail.com wrote:

 That makes sense - but as you mention, it seems like there's some
 missing functionality.

 I think so, yes, but it can get the job done.

 However, it's no fun if you have a lot of subpackages to add that way.

 nope -- but for the most part they are picked up by regular imports,
 anyway. You only need to do this if there are some dynamic importing
 in your code -- and in that case, it's likely you'll want the whole
 package anyway.

In my (probably unusual) situation, it's not dynamic imports: I have
these helper apps that I'm including in the main app bundle. I wanted
to have their Frameworks and lib directories just be symlinks to the
top level, which then had to have the sum of all the modules.

The modules the sub-apps use are picked up and put in the zip just
fine when they're built separately, but I need to put those modules in
the toplevel .zip. I was looking for a nice way to do that from the
options, but that's the specific thing that's missing.

That said, the code to just directly merge the zips and lib-dynload
directories was pretty straightforward and seems to be working well.

If anyone else ever has a similar need, I'd be happy to share it.

-mike


 --

 Christopher Barker, Ph.D.
 Oceanographer

 Emergency Response Division
 NOAA/NOS/ORR(206) 526-6959   voice
 7600 Sand Point Way NE   (206) 526-6329   fax
 Seattle, WA  98115   (206) 526-6317   main reception

 chris.bar...@noaa.gov
___
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG


Re: [Pythonmac-SIG] Question about py2app packages and includes options

2012-07-18 Thread Chris Barker
On Tue, Jul 17, 2012 at 3:49 PM, Michael McCracken
michael.mccrac...@gmail.com wrote:

 That makes sense - but as you mention, it seems like there's some
 missing functionality.

I think so, yes, but it can get the job done.

 However, it's no fun if you have a lot of subpackages to add that way.

nope -- but for the most part they are picked up by regular imports,
anyway. You only need to do this if there are some dynamic importing
in your code -- and in that case, it's likely you'll want the whole
package anyway.

-Chris


-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG


[Pythonmac-SIG] Question about py2app packages and includes options

2012-07-17 Thread Michael McCracken
I am trying to package a main .app with helper apps in
Main.app/Resources/Helper.app, and I want to have a single
Resources/lib directory and a single Frameworks/ directory to cut down
on space.

So I'm tweaking the main app's includes and packages options to get
all the dependencies in one place, and relying on the automatic logic
won't work.

My question is: why does 'packages' copy the package recursively, but
not into the .zip, while 'includes' only gets single modules?
I was expecting packages to put the whole package in the .zip, and I
didn't find any explanation in the docs.

This is a minor point, since it works fine with 'packages' doing what
it does, it'd just be nice to get them into the zip.

Thanks,
-mike
___
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG


Re: [Pythonmac-SIG] Question about py2app packages and includes options

2012-07-17 Thread Chris Barker
On Tue, Jul 17, 2012 at 11:03 AM, Michael McCracken

 My question is: why does 'packages' copy the package recursively, but
 not into the .zip,

because there are packages that don't work right if zipped -- so this
gets around that.

 while 'includes' only gets single modules?

I suspect it's because there should be a way to include a particular
module without the whole package. Essentially:

includes adds a module to list, just as thought there were an
import module name line in the code -- it is used to cover dynamic
imports that won't be caught by walking the code.

packages makes na compete copy of the package, and puts it outside
the zip bundle -- this is fro including packages that have auxiliary
files, etc, and/or can't be zipped for other reasons.

It's a big ugly, but I've managed to put packages into the zip with
something like this:

includes = [package,
package.subpackage
package.subpackage.module1
package.subpackage.module2
]

for some reason (is it a bug? -- or has it been fixed?) doing:

includes = [ package.subpackage.module]

puts module in the root, so it's there but can't be imported the same way.

HTH,

- Chris



-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG


Re: [Pythonmac-SIG] Question about py2app packages and includes options

2012-07-17 Thread Michael McCracken
On Tue, Jul 17, 2012 at 5:25 PM, Chris Barker chris.bar...@noaa.gov wrote:
 On Tue, Jul 17, 2012 at 11:03 AM, Michael McCracken

 My question is: why does 'packages' copy the package recursively, but
 not into the .zip,

 because there are packages that don't work right if zipped -- so this
 gets around that.

That makes sense - but as you mention, it seems like there's some
missing functionality.

 while 'includes' only gets single modules?

 I suspect it's because there should be a way to include a particular
 module without the whole package. Essentially:

 includes adds a module to list, just as thought there were an
 import module name line in the code -- it is used to cover dynamic
 imports that won't be caught by walking the code.

 packages makes na compete copy of the package, and puts it outside
 the zip bundle -- this is fro including packages that have auxiliary
 files, etc, and/or can't be zipped for other reasons.

 It's a big ugly, but I've managed to put packages into the zip with
 something like this:

 includes = [package,
 package.subpackage
 package.subpackage.module1
 package.subpackage.module2
 ]

 for some reason (is it a bug? -- or has it been fixed?) doing:

 includes = [ package.subpackage.module]

 puts module in the root, so it's there but can't be imported the same way.

I don't have time to test, but I think that's been fixed.
However, it's no fun if you have a lot of subpackages to add that way.

For what it's worth, the approach I'm now taking is to create the full
packages for each helper app, then just directly add the missing files
in site-packages.zip and lib-dynload from the helper into the main
app.
Using ZipFile, it's not too bad.

I looked at the source for how py2app uses modulegraph, to see if I
could just generate the dependencies for the sub apps and pass them as
the 'includes' for the main app, but that seemed involved enough that
I ended up doing the above.

-mike

 HTH,

 - Chris



 --

 Christopher Barker, Ph.D.
 Oceanographer

 Emergency Response Division
 NOAA/NOS/ORR(206) 526-6959   voice
 7600 Sand Point Way NE   (206) 526-6329   fax
 Seattle, WA  98115   (206) 526-6317   main reception

 chris.bar...@noaa.gov
 ___
 Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
 http://mail.python.org/mailman/listinfo/pythonmac-sig
 unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
___
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG