[PyVigo] Perdiendo modulos y referencias por el camino... sabeis mas?

José Juan Montes jjmontes at gmail.com
Thu Jun 29 23:26:49 CEST 2017


No encuentro ninguna referencia a un mensaje de error "*no function named*".
Sería bueno ver los mensajes de error exactos

Normalmente Python dice "'NoneType' object has no attribute 'my_function'":

>>> undefined_module.my_function()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'undefined_module' is not defined

>>> none_module = None
>>> none_module.my_function()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'my_function'


En el primer caso el módulo no está importado. En el segundo caso, el
módulo es una variable con valor None.

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 .

Unas preguntas:

1) ¿Podrías pasarnos los mensajes de error sin traducir?

2) Sería interesante ver una pieza de código completa donde ese error
sucede.

3) ¿Estáis usando Twisted o Asyncio en vuestro código?

4) ¿Estáis usando weakreferences o descriptors en vuestro código?

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:

import sysprint(sorted(sys.modules.keys()))

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?

7) ¿Podéis probar con una versión anterior de Python 2.7 / OSGeo4W?

Un saludo,



Jose Juan Montes

El 29 de junio de 2017, 11:12, Luigi Pirelli <luipir at gmail.com> escribió:

> Hola
>
> estamos en fase de testeo de nuestros productos y entre tantas coas
> hay varios plugin de QGIS escrito en Python.
>
> desde hace un año empiezamos a tener algunos errores extraños que no
> tuvimos tiempo de investigar ya que se solucionaban con una patch
> sencilla.
>
> ***************
> esto es el problema
>
> from pkg_name import modulo
>
> def algo(...):
>     modulo.miFuncion(...)
> ****************
>  a veces nos pasa que en execución pasa un error del tipo:
>
> "None" no function named "miFuncion" => modulo ha desaarecido!
>
> la patch tonta es reimportar el modulo
>
> ***************
> esto es el problema
>
> from pkg_name import modulo
>
> def algo(...):
>     from pkg_name import modulo <------
>     modulo.miFuncion(...)
> ****************
>
> esta es la simplificación del problema... pero esto puede pasar con
> clases (cls = None) y instancias (self = None)
>
> a alguien le paso' algo tan extraño?
>
> ****contesto****
> todo funciona de meravilla en OSX y Linux (python 2.17.12) y estas
> anomalias las hay solo con Windows (python de OSGeo4W 2.17.5)
>
> ****entorno de execución complejo, pero' igual en todas la plataformas****
> el codigo es lo mismo en las tres versiones a pesar que el codigo
> python e' executado en un wrapper C++ al interprete (se llama desde
> dentro QGIS) y las anomalias las encuentramos solo en el entorno de
> testeo automatico... que es otro plugin de python que executa testu
> unitarios y test funcionales en el entorno grafico de QGIS.
> A pesar de esto, las primeva vex que encontramos este tipo de
> problemas era executando plugin python non en entorno de testeo.
>
> gracias por cualquiera sugerencia
>
> Luigi Pirelli
>
> ************************************************************
> **************************************
> * Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com
> * LinkedIn: https://www.linkedin.com/in/luigipirelli
> * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
> * GitHub: https://github.com/luipir
> * Mastering QGIS 2nd Edition:
> * https://www.packtpub.com/big-data-and-business-
> intelligence/mastering-qgis-second-edition
> ************************************************************
> **************************************
> _______________________________________________
> Asociación Python España: http://www.es.python.org/
> Python Vigo: http://www.python-vigo.es/
> Vigo mailing list
> Vigo at lists.es.python.org
> https://lists.es.python.org/listinfo/vigo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.es.python.org/pipermail/vigo/attachments/20170629/ba2690db/attachment.html>


More information about the Vigo mailing list