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
>
|