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!
funciones en python y la carpeta local
Re: funciones en python y la carpeta local
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
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
Re: funciones en python y la carpeta local
usas linux o windows ?
Re: funciones en python y la carpeta local
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!
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!
Re: funciones en python y la carpeta local
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!!
Gracias por todo y un saludo!!