<div class="gmail_quote">2010/2/6 Gabriel Genellina <span dir="ltr"><<a href="mailto:gagsl-py2@yahoo.com.ar">gagsl-py2@yahoo.com.ar</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
En Fri, 05 Feb 2010 13:21:47 -0300, Andrew Degtiariov<br>
<<a href="mailto:andrew.degtiariov@gmail.com" target="_blank">andrew.degtiariov@gmail.com</a>> escribió:<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Code of our project has split into several packages and we deploy the<br>
project using buildout.<br>
All worked fine until I need to dynamically inspect python modules.<br>
</blockquote>
<br></div>
Entirely by luck, I'd say :)<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
├───project.api.config<br>
│   ├───project<br>
│   │   └───api<br>
│   │       └───config<br>
│   │           └───settings<br>
│   └───project.api.config.egg-info<br>
├───project.api.contacts<br>
│   ├───project<br>
│   │   └───api<br>
│   │       └───contacts<br>
│   │           ├───importer<br>
│   │           └───views<br>
│   └───project.api.contacts.egg-info<br>
</blockquote>
<br>
</div><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Regular code like "import project.api.config" worked fine, but now I'm tryed<br>
__import__('project.api.config'):<br>
<br>
$ bin/python<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
import project.api.config<br>
__import__('project.api.config')<br>
</blockquote></blockquote></blockquote>
<module 'project from<br>
'c:\users\ad\project\src\project.api.contacts\project\__init__.pyc'><br>
</blockquote>
<br></div><br></blockquote></div><br>If someone <span id="result_box" class="short_text"><span style="background-color: rgb(235, 239, 249);" title="если кому-то интересно - это работает">is interesting - __import__ works but imp doesn't</span></span>.<br>
In my example:<br>>>> m = __import__('project.api.config')<br>>>> m<br><module 'project from
'c:\users\ad\project\src\project.api.contacts\project\__init__.pyc'><br>>>> m.api<br><module 'project.api from
'c:\users\ad\project\src\project.api.contacts\project\api\__init__.pyc'><br>>>> m.api.config<br><module 'project.api.config' from'c:\users\ad\project\src\project.api.config\project\api\config\__init__.pyc'><br>
<br>Please note that the m and m.api pointed to first installing package with namespace project.api but m.api.config have pointed to the proper file.<br><br>And releasing code with several distributions it is one of goals of Distribute. And you might look to pypi for... zope. There is lot of package which names starts from "zope."<br>
It's really convenient<br clear="all"><br>-- <br>Andrew Degtiariov<br>DA-RIPE<br>