<div>I am defining a simple finder/loader object and adding it to sys.meta_path like this:<br></div><div><br></div><div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">
</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315"><span style="color: #000000">PyRun_SimpleString(</span>"import sys; import ousiainternal; sys.meta_path = [ousiainternal.OusiaImporter]"<span style="color: #000000">);</span></p>
<p></p></div><div><br></div><div>The following C code defines the loader object:</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #760f50">static<span style="color: #000000"> </span>void</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">MyImporter_dealloc(PyObject *self)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">{</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>self->ob_type->tp_free(self);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #760f50">static<span style="color: #000000"> </span>int</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">MyImporter_init(MyImporter *self, PyObject *args, PyObject *kwds)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">{</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #760f50"><span style="color: #000000">  </span>return<span style="color: #000000"> </span><span style="color: #0000ff">0</span><span style="color: #000000">;</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span style="color: #760f50">static</span> PyObject *</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">MyImporter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">{</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  MyOutput *self;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  self = (MyOutput *)type->tp_alloc(type, <span style="color: #0000ff">0</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #760f50">return</span> (PyObject *)self;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25">/* Check whether we can satisfy the import of the module named by</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25">'fullname'. Return self if we can, None if we can't. </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25">FYI: MyImporter imports modules from the local instrument.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25">*/</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span style="color: #760f50">static</span> PyObject *</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">MyImporter_find_module(PyObject *obj, PyObject *args)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">{</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>MyImporter *self = (MyImporter *)obj;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>PyObject *path = <span style="color: #760f50">NULL</span>;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #760f50">char</span> *fullname;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #760f50">if</span> (!PyArg_ParseTuple(args, <span style="color: #891315">"s|O"</span>,</p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">                        &fullname, &path))</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #760f50"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">            </span></span>return<span style="color: #000000"> </span>NULL<span style="color: #000000">;</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  mod = lookup_module_in_my_app(name); //borrowed ref</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #760f50">if</span>(mod == <span style="color: #760f50">NULL</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">         </span>Py_INCREF(Py_None);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">         </span><span style="color: #760f50">return</span> Py_None;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>Py_INCREF(self);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #760f50">return</span> (PyObject *)self;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25">/* Load and return the module named by 'fullname'. */</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span style="color: #760f50">static</span> PyObject *</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">MyImporter_load_module(PyObject *obj, PyObject *args)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">{</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>MyImporter *self = (MyImporter *)obj;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>PyObject *mod = <span style="color: #760f50">NULL</span>;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #760f50">char</span> *fullname;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #760f50">if</span> (!PyArg_ParseTuple(args, <span style="color: #891315">"s"</span>, &fullname))</p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #760f50"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">            </span></span>return<span style="color: #000000"> </span>NULL<span style="color: #000000">;</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><br></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  mod = lookup_module_in_my_app(name); // borrowed ref<br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #760f50">if</span>(mod)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">    Py_INCREF(mod);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">  </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #760f50">return</span> mod;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span style="color: #760f50">static</span> PyMethodDef MyImporter_methods[] = {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>{<span style="color: #891315">"find_module"</span>, MyImporter_find_module, METH_VARARGS,</p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315"><span style="color: #000000">    </span>"find a module"<span style="color: #000000">},</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>{<span style="color: #891315">"load_module"</span>, MyImporter_load_module, METH_VARARGS,</p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315"><span style="color: #000000">    </span>"load a module"<span style="color: #000000">},</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">    </span>{</span><span style="color: #760f50">NULL</span><span style="color: #000000">,<span class="Apple-tab-span" style="white-space:pre">          </span></span><span style="color: #760f50">NULL</span><span style="color: #000000">}<span class="Apple-tab-span" style="white-space:pre">   </span></span>/* sentinel */</p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">};</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"><span style="color: #760f50">static</span> PyTypeObject MyImporterType = {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  PyObject_HEAD_INIT(<span style="color: #760f50">NULL</span>)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*ob_size*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315"><span style="color: #000000">  </span>"Myinternal.MyImporter"<span style="color: #000000">,     </span><span style="color: #236e25">/*tp_name*/</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #760f50">sizeof</span>( MyImporter),             <span style="color: #236e25">/*tp_basicsize*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_itemsize*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  (destructor)  MyImporter_dealloc,    <span style="color: #236e25">/*tp_dealloc*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_print*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_getattr*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_setattr*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_compare*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_repr*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_as_number*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_as_sequence*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_as_mapping*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_hash */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_call*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_str*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_getattro*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_setattro*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/*tp_as_buffer*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, <span style="color: #236e25">/*tp_flags*/</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315"><span style="color: #000000">  </span>"import hook for loading embedded modules"<span style="color: #000000">,           </span><span style="color: #236e25">/* tp_doc */</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,<span class="Apple-tab-span" style="white-space:pre">              </span>               <span style="color: #236e25">/* tp_traverse */</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,<span class="Apple-tab-span" style="white-space:pre">              </span>               <span style="color: #236e25">/* tp_clear */</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,<span class="Apple-tab-span" style="white-space:pre">              </span>               <span style="color: #236e25">/* tp_richcompare */</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25"><span style="color: #000000">  </span><span style="color: #0000ff">0</span><span style="color: #000000">,<span class="Apple-tab-span" style="white-space:pre">               </span>               </span>/* tp_weaklistoffset */</p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,<span class="Apple-tab-span" style="white-space:pre">              </span>               <span style="color: #236e25">/* tp_iter */</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,<span class="Apple-tab-span" style="white-space:pre">              </span>               <span style="color: #236e25">/* tp_iternext */</span></p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  MyImporter_methods,       <span style="color: #236e25">/* tp_methods */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #236e25"><span style="color: #000000">  </span><span style="color: #0000ff">0</span><span style="color: #000000">, </span>//MyImporter_members,                   /* tp_members */</p>

<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/* tp_getset */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/* tp_base */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/* tp_dict */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/* tp_descr_get */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/* tp_descr_set */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/* tp_dictoffset */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  (initproc)  MyImporter_init,      <span style="color: #236e25">/* tp_init */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  <span style="color: #0000ff">0</span>,                         <span style="color: #236e25">/* tp_alloc */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">  MyImporter_new,                 <span style="color: #236e25">/* tp_new */</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">};</p>
<br><div class="gmail_quote">A simpler example that yields the same results would be this:</div><div class="gmail_quote"><br></div><div class="gmail_quote"><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco">
<span style="color: #760f50">static</span> <span style="color: #760f50">const</span> <span style="color: #760f50">char</span> *importer_source = </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"import sys\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"class Importer:\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"    def __init__(self, path):\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"        print \'Import.__init__\', path\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"    def find_module(self, fullname, path=None):\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"        print self\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"        if fullname == \'bleh\':\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"            return self\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"    def load_module(self, fullname):\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"        print self\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"        if fullname == \'bleh\':\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"            return sys\n"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">"sys.meta_path.append(Importer)\n"<span style="color: #000000">;</span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315">
<span class="Apple-style-span" style="color: rgb(0, 0, 0);"><br></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #891315"><span class="Apple-style-span" style="color: rgb(0, 0, 0);"></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px">PyRun_SimpleString(importer_source);<br></p><p></p></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">
For both examples none of the methods are called (I set breakpoints for the C functions) but a statement like "import os" or PyImport_ImportModule("traceback") don't work.</div><div class="gmail_quote">
<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Thanks for your help</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">On Wed, Apr 16, 2008 at 12:02 AM, Gabriel Genellina <<a href="mailto:gagsl-py2@yahoo.com.ar">gagsl-py2@yahoo.com.ar</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">En Tue, 15 Apr 2008 22:14:18 -0300, Patrick Stinson<br>
<<a href="mailto:patrickkidd.lists@gmail.com">patrickkidd.lists@gmail.com</a>> escribió:<br>
<div class="Ih2E3d"><br>
> What's the current way to install an import hook? I've got an embedded<br>
> app<br>
> that has a few scripts that I want to import each other, but that are<br>
> not in<br>
> sys.modules. I intentionally keep them out of sys.modules because their<br>
> names will not be unique across the app. They will, however, be unique<br>
> between scripts that I (do* want to see each other).<br>
> Basically, I want to return a certain module from a name-based filter.<br>
> I've<br>
> already written a type in C with find_module and load_module, but it<br>
> doesn't<br>
> seem to work when I add the type to sys.path_hooks. I wrote a simple one<br>
> that worked just fine from a pure script file run through python.exe.<br>
<br>
</div> From that description alone I can't say what's happening; you should post<br>
some code.<br>
Also, if your importer isn't disk-based, perhaps using sys.meta_path is<br>
better.<br>
<br>
--<br>
Gabriel Genellina<br>
<font color="#888888"><br>
--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Patrick Kidd Stinson<br><a href="http://www.patrickkidd.com/">http://www.patrickkidd.com/</a><br><a href="http://pkaudio.sourceforge.net/">http://pkaudio.sourceforge.net/</a><br>
<a href="http://pksampler.sourceforge.net/">http://pksampler.sourceforge.net/</a>