<div dir="ltr"><div>No encuentro ninguna referencia a un mensaje de error "<i>no function named</i>".  Sería bueno ver los mensajes de error exactos<br></div><div><br></div><div>Normalmente Python dice "'NoneType' object has no attribute 'my_function'":<br></div><div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><font face="monospace, monospace">>>> undefined_module.my_function()</font></div></div><div><div><font face="monospace, monospace">Traceback (most recent call last):</font></div></div><div><div><font face="monospace, monospace">  File "<stdin>", line 1, in <module></font></div></div><div><div><font face="monospace, monospace">NameError: name 'undefined_module' is not defined</font></div></div><div><div><font face="monospace, monospace"><br></font></div></div><div><div><font face="monospace, monospace">>>> none_module = None</font></div></div><div><div><font face="monospace, monospace">>>> none_module.my_function()</font></div></div><div><div><font face="monospace, monospace">Traceback (most recent call last):</font></div></div><div><div><font face="monospace, monospace">  File "<stdin>", line 1, in <module></font></div></div><div><div><font face="monospace, monospace">AttributeError: 'NoneType' object has no attribute 'my_function'</font></div></div></blockquote><div><br></div><div>En el primer caso el módulo no está importado. En el segundo caso, el módulo es una variable con valor None.</div><div><br></div><div>Por esto me da la sensación de que, más que "desaparecer" el módulo, el símbolo está siendo asignado el valor None en algún punto. El hecho de que también suceda con clases e instancias sugiere que quizá en algún punto se está asignando None a una variable a la que se está pasando .</div><div><br></div><div><div>Unas preguntas:</div><div><br></div>1) ¿Podrías pasarnos los mensajes de error sin traducir? <div><br></div><div>2) Sería interesante ver una pieza de código completa donde ese error sucede.<br></div><div><br></div><div>3) ¿Estáis usando Twisted o Asyncio en vuestro código?</div></div><div><br></div><div>4) ¿Estáis usando weakreferences o descriptors en vuestro código?</div><div><br></div><div>5) Comprobemos si el módulo está o no importado, listando los módulos en ese punto. Usa algo como esto en el lugar donde estás reimportando el módulo:</div><div><br></div><div><pre class="gmail-lang-py gmail-prettyprint gmail-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-variant-numeric:inherit;font-stretch:inherit;font-size:13px;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);color:rgb(57,51,24);word-wrap:normal"><font color="#393318">import</font><span class="gmail-pln" style="font-family:inherit;font-size:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;color:rgb(34,34,34);white-space:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:inherit;vertical-align:baseline"><font color="#303336"> sys
</font></span><font color="#393318">print(sorted(sys</font><span class="gmail-pun" style="font-family:inherit;font-size:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;color:rgb(48,51,54);white-space:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:inherit;vertical-align:baseline">.</span><span class="gmail-pln" style="font-family:inherit;font-size:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;color:rgb(48,51,54);white-space:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:inherit;vertical-align:baseline">modules</span><span class="gmail-pun" style="font-family:inherit;font-size:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;color:rgb(48,51,54);white-space:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:inherit;vertical-align:baseline">.</span><span class="gmail-pln" style="font-family:inherit;font-size:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;color:rgb(48,51,54);white-space:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:inherit;vertical-align:baseline">keys</span><span class="gmail-pun" style="font-family:inherit;font-size:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;color:rgb(48,51,54);white-space:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:inherit;vertical-align:baseline">()))</span></pre></div><div>6) El hecho de que sólo se reproduzca en Windows podría sugerir un bug relacionado con la plataforma. ¿Es seguro que sólo se reproduce en Windows? ¿Se reproduce siempre, o sólo a veces?</div><div><br></div><div>7) ¿Podéis probar con una versión anterior de Python 2.7 / OSGeo4W?</div><div><br></div><div>Un saludo,</div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">Jose Juan Montes</div></div>
<br><div class="gmail_quote">El 29 de junio de 2017, 11:12, Luigi Pirelli <span dir="ltr"><<a href="mailto:luipir@gmail.com" target="_blank">luipir@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola<br>
<br>
estamos en fase de testeo de nuestros productos y entre tantas coas<br>
hay varios plugin de QGIS escrito en Python.<br>
<br>
desde hace un año empiezamos a tener algunos errores extraños que no<br>
tuvimos tiempo de investigar ya que se solucionaban con una patch<br>
sencilla.<br>
<br>
***************<br>
esto es el problema<br>
<br>
from pkg_name import modulo<br>
<br>
def algo(...):<br>
    modulo.miFuncion(...)<br>
****************<br>
 a veces nos pasa que en execución pasa un error del tipo:<br>
<br>
"None" no function named "miFuncion" => modulo ha desaarecido!<br>
<br>
la patch tonta es reimportar el modulo<br>
<br>
***************<br>
esto es el problema<br>
<br>
from pkg_name import modulo<br>
<br>
def algo(...):<br>
    from pkg_name import modulo <------<br>
    modulo.miFuncion(...)<br>
****************<br>
<br>
esta es la simplificación del problema... pero esto puede pasar con<br>
clases (cls = None) y instancias (self = None)<br>
<br>
a alguien le paso' algo tan extraño?<br>
<br>
****contesto****<br>
todo funciona de meravilla en OSX y Linux (python 2.17.12) y estas<br>
anomalias las hay solo con Windows (python de OSGeo4W 2.17.5)<br>
<br>
****entorno de execución complejo, pero' igual en todas la plataformas****<br>
el codigo es lo mismo en las tres versiones a pesar que el codigo<br>
python e' executado en un wrapper C++ al interprete (se llama desde<br>
dentro QGIS) y las anomalias las encuentramos solo en el entorno de<br>
testeo automatico... que es otro plugin de python que executa testu<br>
unitarios y test funcionales en el entorno grafico de QGIS.<br>
A pesar de esto, las primeva vex que encontramos este tipo de<br>
problemas era executando plugin python non en entorno de testeo.<br>
<br>
gracias por cualquiera sugerencia<br>
<br>
Luigi Pirelli<br>
<br>
******************************<wbr>******************************<wbr>******************************<wbr>********<br>
* Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com<br>
* LinkedIn: <a href="https://www.linkedin.com/in/luigipirelli" rel="noreferrer" target="_blank">https://www.linkedin.com/in/<wbr>luigipirelli</a><br>
* Stackexchange: <a href="http://gis.stackexchange.com/users/19667/luigi-pirelli" rel="noreferrer" target="_blank">http://gis.stackexchange.com/<wbr>users/19667/luigi-pirelli</a><br>
* GitHub: <a href="https://github.com/luipir" rel="noreferrer" target="_blank">https://github.com/luipir</a><br>
* Mastering QGIS 2nd Edition:<br>
* <a href="https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition" rel="noreferrer" target="_blank">https://www.packtpub.com/big-<wbr>data-and-business-<wbr>intelligence/mastering-qgis-<wbr>second-edition</a><br>
******************************<wbr>******************************<wbr>******************************<wbr>********<br>
______________________________<wbr>_________________<br>
Asociación Python España: <a href="http://www.es.python.org/" rel="noreferrer" target="_blank">http://www.es.python.org/</a><br>
Python Vigo: <a href="http://www.python-vigo.es/" rel="noreferrer" target="_blank">http://www.python-vigo.es/</a><br>
Vigo mailing list<br>
<a href="mailto:Vigo@lists.es.python.org">Vigo@lists.es.python.org</a><br>
<a href="https://lists.es.python.org/listinfo/vigo" rel="noreferrer" target="_blank">https://lists.es.python.org/<wbr>listinfo/vigo</a></blockquote></div><br></div>