Lo que ocurre es que hay que seguir la estructura de proyectos de Python ;-)

Si tenemos en nuestro proyecto:

/
/modulo/
/modulo/__init__.py
/modulo/modulo.py
/mi_programa.py
/otro.py

Y estamos importando desde mi_programa.py, el método será el siguiente:
Al hacer "from . import modulo", estaremos ejecutando __init__.py de /modulo/
Al hacer "from . modulo import modulo", estaremos importando el modulo.py
Al hacer "from . import otro", estaremos importando "otro.py"
Al hacer "from . otro import funcion", estaremos importando la función
en concreto de otro.py

Si estamos en "modulo.py", al hacer "from .. import otro" estaremos
importando el de un directorio del nivel inferior en el árbol del
proyecto, es decir, "otro.py". Y recordad que para poder importar de
un directorio, este debe tener un "__init__.py" ;-)

Espero que con estos ejemplos haya quedado claro.

Saludos.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: [email protected]
XMPP/Jabber: [email protected]
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 17 de abril de 2011 22:49, Daπid <[email protected]> escribió:
> En beneficio de la pedagogía, ¿por qué funciona? ¿Qué diferencia
> introduce el punto?
>
> ¡Gracias!
>
> 2011/4/17 Jesús Genicio <[email protected]>:
>> El día 17 de abril de 2011 04:19, Nekmo <[email protected]> escribió:
>>> Prueba con lo siguiente y dinos si te funciona:
>>>
>>> from . class_manejo_web import manejo_web
>> Perfecto!!!
>>
>> Muchas Gracias.
>>
>>>
>>> Un cordial saludo:
>>> -- Nekmo.
>>>
>>> Sitio web: http://nekmo.com
>>> Dirección de contacto: [email protected]
>>> XMPP/Jabber: [email protected]
>>> Identi.ca: http://identi.ca/nekmo
>>> Diaspora: Nekmo
>>>
>>>
>>>
>>> El día 16 de abril de 2011 20:21, Jesús Genicio <[email protected]> 
>>> escribió:
>>>> Hola amigo@s:
>>>>
>>>> Pregunta de novato :))
>>>>
>>>> Tengo un programa para ejecutar sobre web, el cual tengo dividido en
>>>> archivos, cada uno con una clase:
>>>>
>>>> Y al hacer sobre un archivo de prueba ( /var/www/py/prueba.py) esto:
>>>>
>>>> from class_manejo_web import manejo_web
>>>>
>>>> estando el archivo "class_manejo_web.py en el mismo directorio que 
>>>> prueba.py
>>>>
>>>> me da este error:
>>>>
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] Traceback (most
>>>> recent call last):
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]   File
>>>> "/var/www/py/liquidacion/prueba.py", line 11, in <module>
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] from
>>>> class_calculo_prima import calcula_prima
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] ImportError
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] :
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] No module named
>>>> class_calculo_prima
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] Premature end of
>>>> script headers: prueba.py
>>>>
>>>> Está claro que no encuentra el archivo, ¿dónde o de qué manero lo
>>>> tengo que declarar, guardar...?
>>>>
>>>> S2.
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> [email protected]
>>>> http://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> [email protected]
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>> _______________________________________________
>> Python-es mailing list
>> [email protected]
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
> _______________________________________________
> Python-es mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a