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
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to