problema con un paramiko

Arnau Sanchez pyarnau en gmail.com
Mar Mayo 12 15:34:23 CEST 2009


Reiniel Gonzalez Martinez wrote:

> Hola a todos, tengo un problemita, estoy tratando de sobreescribir un fichero
> de configuración de un server remoto, pero al ejecutar este código me lanza
> el siguiente error sftp.put(localpath, remotepath)
> 
> AttributeError: 'NoneType' object has no attribute 'put'

 > sftp = paramiko.SFTPClient.from_transport(conexion)

Son muchas cosas las que pueden estar fallando, lo primero que miraría es la
variable "conexion", ver si es de tipo paramiko.Transport como se espera. Puedes
hacerlo con un print o, mejor, con un breakpoint:

from pdb import set_trace; set_trace()

> self.script = "[" + name + "]"'\n' + "path = " +path + '\n' + "public = " +
> public + '\n' + "writeable = " + writeable + '\n' +"create mask = "+
> createmask + '\n' + "comment = " + comment + '\n' + "directory mask = " +
> directorymask + '\n' +"valid users = " + valid_users + '\n'+'\n'

No tiene relación con tu pregunta, pero no puedo evitar comentarte que tienes
que darle alguna vuelta a esa línea, es casi ilegible. Fíjate que hay un patrón
que se repite ("nombre de variable = valor"), puedes hacer algo así:

# si el orden no es importante también se puede hacer con un diccionario
options = [
    ("path", path),
    ("public", public),
...
]

optionslst = ["%s = %s" % (key, value) for (key, value) in options]
self.script = "\n".join(["[%s]" % name] + optionslst) + "\n" + "\n"

Quedará más largo pero mucho más claro.

arnau


-- 
Desarrollador freelance
http://www.arnau-sanchez.com
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es