Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[PyQt5] NameError: name 'fileName' is not defined
#1
Estoy teniendo ese error, pero la variable está declarada anteriormente:
Código:
[code]
def openFile(self):
       fileName, _ = QFileDialog.getOpenFileName(self, "Open Movie",
                                                 QDir.homePath(), """Images (*.png *.jpeg *.jpg *.gif *.bmp)
                                                                     All files (*)""")

       
       if fileName != '':
           self.mediaPlayer.setMedia(
               QMediaContent(QUrl.fromLocalFile(fileName)))
           """
           self.playButton.setEnabled(True)
           self.playAction.setEnabled(False)
           self.chgresm.setEnabled(True)
           """
           self.effm.setEnabled(True)


       fileName, fileExt = os.path.splitext(fileName)
[/code]
Acá les dejo el código fuente: (está en un tar.gz ya que requiere de otros archivos para funcionar)
Código
Responder
#2
El mensaje que muestra Python en consola indica claramente que el error es en la línea 319:

Código:
def legofy_eff(self):
        if os.name == "posix":
            os.system("python3 dependencies/legofy_linux.py %s %s" % (fileName, fileno))

        elif os.name == "nt":
            os.system("dependencies/legofy.exe %s %s" % (fileName, fileno))

Efectivamente la variable no está definida en esa función.

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
(11-09-2018, 01:11 AM)Francisco escribió: El mensaje que muestra Python en consola indica claramente que el error es en la línea 319:

Código:
   def legofy_eff(self):
       if os.name == "posix":
           os.system("python3 dependencies/legofy_linux.py %s %s" % (fileName, fileno))

       elif os.name == "nt":
           os.system("dependencies/legofy.exe %s %s" % (fileName, fileno))

Efectivamente la variable no está definida en esa función.

Saludos

No es eso, ya que si declaro la variable dentro de legofy_eff se va a borrar, la variable fileName es una que tiene el path del archivo abierto, y esta debe ser igual en todas las funciones, ya trate con global y aun no funciona.
Responder
#4
Para que la variable sea visible en todos los métodos de la clase tenés que definirla como self.fileName.

Te recomiendo este artículo para aclarar cuestiones básicas de la orientación a objetos: https://recursospython.com/guias-y-manua...a-objetos/.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#5
(12-09-2018, 02:29 PM)Francisco escribió: Para que la variable sea visible en todos los métodos de la clase tenés que definirla como self.fileName.

Te recomiendo este artículo para aclarar cuestiones básicas de la orientación a objetos: https://recursospython.com/guias-y-manua...a-objetos/.

Gracias, pero como haría para sobreescribir una imagen guardada?
Por ejemplo, legofy a.png a.png, sin embargo, da PermissionError.
Se podría solucionar esto añadiendo un caracter al nombre del archivo de salida, pero te termina llenando la carpeta de archivos.
Responder
#6
Si la excepción es PermissionError es porque no tenés los permisos suficientes para ejecutar esa operación. La solución es ejecutar el programa con permisos de administrador.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)