funciones en python y la carpeta local

Preguntas y respuestas relacionadas con el uso y desarrollo de scripts Python y plugins para Blender 3D
Responder
esahagun
Mensajes: 19
Registrado: Lun Abr 04, 2011 6:28 pm
Nombre:

funciones en python y la carpeta local

Mensaje por esahagun » Lun May 09, 2011 12:42 pm

Hola a todos:

Estoy escribiendo un script en python y quiero definir una funcion en otro fichero para llamarla desde el main script. Para llamarla tengo que escribir (si no me equivoco, ya que soy nuevo en python):

import functionfile

function ()

El fichero functionfile.py esta en la misma carpeta que el archivo Blender y Blender me dice que no encuentra functionfile.py

ImportError: No module named functionfile

Creo que es un problema de paths... Alquien puede ayudarme?

Muchas gracias por adelantado!

zodman
Mensajes: 8
Registrado: Sab Oct 09, 2010 8:52 pm
Nombre:

Re: funciones en python y la carpeta local

Mensaje por zodman » Lun May 09, 2011 1:34 pm

No se muy bien como organiza blender sus extensiones.


esta bien el >> import functionfile

pero para llamarlo seria functionfile.function()

Y tu problema es tu path :)
Cuales son tus paths de python ?

corre esto:

import sys
print sys.path


aqui te pongo los mios de ejemplo.

>> import sys
>>> sys.path
[\'\', \'/usr/lib/python2.6/site-packages/pysmell-0.7.3-py2.6.egg\', \'/usr/lib/python2.6/site-packages/Twisted-10.2.0-py2.6-linux-i686.egg\', \'/usr/lib/python2.6/site-packages/beets-1.0b7-py2.6.egg\', \'/usr/lib/python2.6/site-packages/munkres-1.0.5.4-py2.6.egg\', \'/usr/lib/python2.6/site-packages/python_musicbrainz2-0.7.2-py2.6.egg\', \'/usr/lib/python2.6/site-packages/gondor-1.0b1.post1-py2.6.egg\', \'/usr/lib/python2.6/site-packages/argparse-1.1-py2.6.egg\', \'/usr/lib/python26.zip\', \'/usr/lib/python2.6\', \'/usr/lib/python2.6/plat-linux2\', \'/usr/lib/python2.6/lib-tk\', \'/usr/lib/python2.6/lib-old\', \'/usr/lib/python2.6/lib-dynload\', \'/usr/lib/python2.6/site-packages\', \'/usr/lib/python2.6/site-packages/Numeric\', \'/usr/lib/python2.6/site-packages/PIL\', \'/usr/lib/python2.6/site-packages/kodos\', \'/usr/lib/python2.6/site-packages/gst-0.10\', \'/usr/lib/python2.6/site-packages/gtk-2.0\', \'/usr/lib/python2.6/site-packages/pyinotify\', \'/usr/lib/python2.6/site-packages\', \'/usr/lib/python2.6/site-packages/wx-2.8-gtk2-unicode\']


Creo que aqui esta mejor explicado http://wiki.blender.org/index.php/Doc:M ... thon/Setup

zodman
Mensajes: 8
Registrado: Sab Oct 09, 2010 8:52 pm
Nombre:

Re: funciones en python y la carpeta local

Mensaje por zodman » Lun May 09, 2011 1:35 pm

usas linux o windows ?

esahagun
Mensajes: 19
Registrado: Lun Abr 04, 2011 6:28 pm
Nombre:

Re: funciones en python y la carpeta local

Mensaje por esahagun » Lun May 09, 2011 2:06 pm

Gracias por responder:

Creo que he localizado el problema: He conseguido que blender encuentre el modulo. Tengo que guardarlo en

/usr/share/blender/2.57/scripts/modules (uso ubuntu)

El problema que tengo ahora es que cuando hago cambios, el script en blender no los ve. Estoy intentando utilizar el comando reload, pero no lo reconoce. También he intentado esto:

from esfdurpy import *
import imp
imp.reload(esfdurpy)

esfdurpy es la función que estoy creando yo. Y cuando ejecuto esto lo que me dice es que encuentra esfdurpy en la primera linea (from esfdurpy import *) pero cuando ejecuto imp.reload(esfdurpy) me dice que:

NameError: name \'esfdurpy\' is not defined

No entiendo nada!

Gracias!

esahagun
Mensajes: 19
Registrado: Lun Abr 04, 2011 6:28 pm
Nombre:

Re: funciones en python y la carpeta local

Mensaje por esahagun » Lun May 09, 2011 2:14 pm

creo que ya lo he resuelto y era un problema de orden... (o eso parecia). Me refiero al orden en el que se hacían las llamadas... extraño.

Gracias por todo y un saludo!!

Responder