Foros del Web » Programando para Internet » Python »

Problema con ruta de archivos...

Estas en el tema de Problema con ruta de archivos... en el foro de Python en Foros del Web. Buenas tengo el siguiente problema.. estoy tratando de llamar a un proyecto desde otro proyecto, o sea tengo un proyecto A (en pygtk) (que es ...
  #1 (permalink)  
Antiguo 16/01/2012, 17:10
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 14 años, 3 meses
Puntos: 0
Problema con ruta de archivos...

Buenas tengo el siguiente problema.. estoy tratando de llamar a un proyecto desde otro proyecto, o sea tengo un proyecto A (en pygtk) (que es el primero que ejecuto), que llama al proyecto B (en pygame) (en determinado momento o Action de un boton).
La estructura de mi proyecto esta compuesta de la siguiente forma
src
------ Proyecto A (package)
------ Proyecto B (package)

El problema es el siguiente, cuando ejecuto el proyecto B por separado no tengo ningún problema, me funciona perfecto, carga imagenes del disco, sonidos, etc, pero cuando llamo al mismo proyecto desde el proyecto A, me tira que no encuentra los archivos en disco para cargar, por ejemplo el de la musica, este es el msj de error:

pygame.mixer.music.load(rutaSonido)
pygame.error: Couldn't read from 'Sonidos\musicaFondo.ogg'

He probado con subir niveles (..\ Ruta) y sigo con el mismo msj:

pygame.mixer.music.load(rutaSonido)
pygame.error: Couldn't read from '..\Sonidos\musicaFondo.ogg'

pygame.mixer.music.load(rutaSonido)
pygame.error: Couldn't read from '..\..\Sonidos\musicaFondo.ogg'

Realmente no entiendo el funcionamiento de esto, ya que hace 2 días hice la misma prueba y funciono correctamente, y ahora no.

Gracias y saludos Diego!
  #2 (permalink)  
Antiguo 16/01/2012, 19:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Problema con ruta de archivos...

Te recomendaría no usar rutas relativas de esa manera.

Prueba con un
Código Python:
Ver original
  1. ruta_musica = os.path.join(os.path.dirname(__file__), 'musicaFondo.ogg')
  #3 (permalink)  
Antiguo 16/01/2012, 20:14
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con ruta de archivos...

Hola, la linea de codigo con la cual llamo al archivo en disco es la siguiente

rutaSonido = os.path.join (self.config.DIR_SONIDOS, nombreMusicaFondo)

dondo self.config.DIR_SONIDOS = "Sonidos" Que es una carpeta fuera del pakage que la esta llamando, o sea:

src
--------- Package A
--------- Sonidos

O sea no uso rutas relativas, cual puede ser el error, es muy raro, ya que como te digo si ejecuto el main del package B no pasa nada, el error se produce cuando lo llamo desde otro package.
no se que paso, que puede ser???
  #4 (permalink)  
Antiguo 16/01/2012, 21:08
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con ruta de archivos...

Bueno pude solucionar provisoriamente el problema que tengo pero no he llegado a la solución correcta, explico que hice y pongo codigo y bien la ruta para que se vea bien el problema en el que me encuentro, espero no extenderme demasiado:

Mi proyecto se compone de la siguiente manera:

Código:
src
|
+- Proyecto A (package)
|                    |
|                   +-Logica (package)
|                            |
|                            +- main() ----> del proyectoA (Es el que ejecuto para iniciar)
|
+- Proyecto B (package)
                    |
                    +- Motor (package)
                    |        |                   
                    |        +- Clase que llama a: rutaSonido = os.path.join (self.config.DIR_SONIDOS, nombreMusicaFondo) 
                    |                              pygame.mixer.music.load(rutaSonido) 
                    |                              Donde rutaSonido seria "Sonidos\musicaFondo.ogg'"
                    +- Sonidos (carpeta)
                    |        |
                    |        +- musicaFondo.ogg
                    |
                    +- main() --> del proyectoB
Cuando ejecutaba el main del proyecto A, me daba el error que les comente, lo que hice fue mover la carpeta Sonidos del proyecto B al proyecto A dentro del package Logica (que es quien tiene a la clase main que ejecuto), Ahi se arreglo el problema, pero en realidad esta mal!, porque yo no quiero tener la carpeta Sonido en el proyecto A, sino en el B, y tampoco quiero duplicar la misma, ya que son dos cosas distintas. Porque pasa esto de que si ejecuto en proyecto A la carpeta debe estar en A, y si ejecuto en B debe estar en B,. Recuerdo que cuando me dirijo a proyecto en realidad son dos packages que dividen dos logicas distintas (pygtk y pygame), el proyecto en si es uno solo. Que es lo que pasa y como lo soluciono?

Saludos
Diego

Etiquetas: proyecto, pygtk, ruta, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:45.