[Tutor] Package loading
Karim
kliateni at gmail.com
Tue Nov 30 11:02:29 CET 2010
On 11/30/2010 12:58 AM, Karim wrote:
> On 11/29/2010 09:15 PM, Karim wrote:
>>
>> Hello every one,
>>
>> I created a package with the following structure:
>>
>> * ops/
>> o __init__.py
>> o tcl/
>> + __init__.py
>> + pythontcl.py
>>
>>
>>
>> > *python -c "import sys; print sys.path; import ops.tcl.pythontcl"*
>>
>> ['',
>> '/usr/local/lib/python2.6/dist-packages/pyparsing-1.5.5-py2.6.egg',
>> '*/home/karim/build/UML2PDK/lib/python*', '/usr/lib/python2.6',
>> '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk',
>> '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload',
>> '/usr/lib/python2.6/dist-packages',
>> '/usr/lib/python2.6/dist-packages/PIL',
>> '/usr/lib/python2.6/dist-packages/gst-0.10',
>> '/usr/lib/pymodules/python2.6',
>> '/usr/lib/python2.6/dist-packages/gtk-2.0',
>> '/usr/lib/pymodules/python2.6/gtk-2.0',
>> '/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode',
>> '/usr/local/lib/python2.6/dist-packages']
>> /*home/karim/build/UML2PDK/lib/python/ops/tcl/pythontcl.py:109:
>> RuntimeWarning: Parent module 'pythontcl' not found while handling
>> absolute import
>> import unittest
>> /home/karim/build/UML2PDK/lib/python/ops/tcl/pythontcl.py:110:
>> RuntimeWarning: Parent module 'pythontcl' not found while handling
>> absolute import
>> import sys*
>>
>> At the lines I import standard modules sys and unittest I get these
>> non-sense warning (my consideration) though I added the top package
>> root, namely, */home/karim/build/UML2PDK/lib/python. The
>> programesecute correctly but I alaways get this nerving warning.
>>
>> *Any idea will be welcome!* :-)
>>
>> *Regards
>> Karim*
>> *
>
> I believed I know why:
>
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> File "/home/karim/build/UML2PDK/lib/python/ops/tcl/pythontcl.py",
> line 119, in <module>
> print sys.modules[__package__]
> KeyError: 'pythontcl'
>
> It is due to method determine parent in class ModuleImporter.
> I don't know why sys.modules has the key 'ops.tcl.pythontcl'
> and this class search for the key module 'pythontcl'.
>
> Big mess between relative path or whatever.
>
> Any idea to fix that?
>
> Karim
>
Ok fixed.
I must not set the special variable __name__. I set it for pydoc docstrings.
Now the __name__ is automatically set to 'ops.tcl.pythontcl' and
__package__ is set correctly to 'ops.tcl'.
Kind Regards
Karim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20101130/54b75bd2/attachment.html>
More information about the Tutor
mailing list