Re: [Pyobjc-dev] import QTKit -> NSRecursiveLock errors
Brought to you by:
ronaldoussoren
From: Dirk S. <dir...@ma...> - 2009-06-25 18:17:04
|
On Jun 25, 2009, at 5:01 PM, Ronald Oussoren wrote: > > On 25 Jun, 2009, at 16:38, Dirk Stoop wrote: > >> On Jun 25, 2009, at 8:02 AM, Ronald Oussoren wrote: >> >>> However, if you use py2app it should detect 'import' statements in >>> function bodies as well as at the global level. I'd consider it a >>> bug >>> when it doesn't detect import statements in a function/method body. >> >> Ahh. Thanks for the clarification. I use code like the example >> below in some places in Checkout, so those must be the only places >> where py2app – understandibly – misses stuff: >> >> exec("import %s" % someClassName) >> exec("instance = %s.alloc().init()" % someClassName) > > That's right. Py2app can only detect imports using the import > statement, those are easily detectable by scanning the bytecode of a > module. Another relativly common way to import code in very dynamic > modules is: > > mod = __import__(someClassName) > > This emits a regular function call in the bytecode and cannot be > detected by py2app. > > BTW. I would use that mechansm rather than your exec statements to > dynamicly import code: > Thanks, I'll switch that code over to the method you describe, sounds a lot cleaner. - Dirk > m = __import__(someClassName) > instance = getattr(m, someClassName).alloc().init() > > Ronald > >> >> - Dirk > |