Foros del Web » Programando para Internet » Python »

ImportError: No module named .. Linux

Estas en el tema de ImportError: No module named .. Linux en el foro de Python en Foros del Web. Buenas, estoy teniendo un problema al ejecutar mi aplicación en linux. Cuando la ejecuto en Windows no tengo problemas me funciona perfectamente, pero cuando la ...
  #1 (permalink)  
Antiguo 11/10/2011, 20:26
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
ImportError: No module named .. Linux

Buenas, estoy teniendo un problema al ejecutar mi aplicación en linux. Cuando la ejecuto en Windows no tengo problemas me funciona perfectamente, pero cuando la ejecuto en linux me da el siguiente error..
ImportError: No module named miClase

Realmente no se que puede ser, repito en windows funciona y cuando le ejecuto el comando python main.py me da el error que les mencione. No se que es lo que no funciona.

Saludos!!
  #2 (permalink)  
Antiguo 11/10/2011, 20:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ImportError: No module named .. Linux

Probablemente hardcodeaste algo en el path en tu windows. Lo que me hace recordar que hardcodear cosas en el path es una mala practica.

Volviendo al tema esta el archivo miClase.py en la misma carpeta de main.py ?
  #3 (permalink)  
Antiguo 11/10/2011, 21:03
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Hola, la estructura del proyecto es la siguiente

src
------ packageUNO
---------------- miClase.py (dentro de packageUNO)

main.py (ubicado en src)

Con lo de hardcodear realmente no se a que te refieres?, bueno espero que puedas ayudarme, porque realmente parece muy raro el problema, es mas pude ejecutar un ejemplo que baje en internet y anduvo perfecto en linux y en windows, pero con mi proyecto no se cual es el problema que no puedo hacerlo andar!!
  #4 (permalink)  
Antiguo 11/10/2011, 22:13
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ImportError: No module named .. Linux

En ese caso tendrías que hacer lo siguiente para importarlo.

Código Python:
Ver original
  1. #main.py
  2. from packageUNO import miClase

Esto suponiendo que packageUNO es una packete. (Para saber si packageUNO es un paquete o no debe de tener el archivo __init__.py)
  #5 (permalink)  
Antiguo 12/10/2011, 05:52
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Hola!, el import lo hago bien, o sea el código de la clase esta bien, creo que el problema debe ser algún tema del entorno, porque en windows funciona bien de bien y en linux no. No tengo mucho conocimiento en linux y no se si hay que hacer algo distinto en linux para que funcione.

Saludos!
  #6 (permalink)  
Antiguo 12/10/2011, 08:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ImportError: No module named .. Linux

¿Cual es el error completo? y ¿Cual es tu estructura de archivos completo?

Ademas un poco de código no vendría mal.

La verdad no creo que sea cuestión de entornos. También recuerda que en linux las mayúsculas y minúsculas en el sistema de archivos también cuenta.
  #7 (permalink)  
Antiguo 12/10/2011, 08:38
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Cita:
Iniciado por diego_g_09 Ver Mensaje
Hola!, el import lo hago bien, o sea el código de la clase esta bien, creo que el problema debe ser algún tema del entorno, porque en windows funciona bien de bien y en linux no. No tengo mucho conocimiento en linux y no se si hay que hacer algo distinto en linux para que funcione.

Saludos!
revisa las versiones de python que tienes en ambos so, por si las moscas, si el código está bien se ejecuta bien...
  #8 (permalink)  
Antiguo 12/10/2011, 08:40
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Te comento con mas detalle que me esta pasando: El error que sale por consola es el siguiente:
ImportError: No module named miClase.

Esto pasa cuando realizo un import de una de mis clases que se encuentra en mi package (nombre "Motor"), en alguna de mis clases que están dentro del package que tengo (se entiende?), paso a detallar un poco mas:

El main que se encuentra en la raiz (src), tiene el siguiente código:

# ------------- INICIO IMPORT ------------- #
from Motor.VentanaPrincipal import VentanaPrincipal
import logging
# -------------- FIN IMPORT --------------- #


if __name__ == '__main__':

logging.basicConfig(filename='logMotor.log',level= logging.DEBUG)
logging.info('Se inicia el archivo EjecutarAplicacion Correctamente')

venPrin = VentanaPrincipal ()
logging.info('Se Crea la ventana principal Correctamente')

Hasta aquí todo bien!, el import lo hace correcto y sigue ejecutando el main (comprobado por el archivo log), luego cuando se crea venPrin se llama a la clase VentanaPrincipal que se encuentra en el package "Motor", y el código de la clase ventanaPrincipal es el siguiente:

# ------------- INICIO IMPORT ------------- #
import pygame
from pygame.locals import *
from Motor.XML import XML
# -------------- FIN IMPORT --------------- #

Pongo solo el import porque comprobe mediante un log que se cae cuando realiza el import from Motor.XML import XML, además del obvio msj que me aparece en consola que todo indica que es cuando realiza el import de la clase XML. (aclaro que tengo otras clases ademas de XML y alterne el orden para ver si el problema era una clase en especifico, pero no, ya que cuando explota cuando llama a cualquiera de mis clases)

Me esta dando el error de ImportError: No module named XML, o sea no puede importar la clase XML que se encuentra en el mismo package que VentanaPrincipal.

La estructura de mi proyecto es la siguiente:
-- src
-----main.py (ubicado en src)
---------- Motor (package)
----------------------- XML.py (dentro de Motor)
----------------------- VentanaPrincipal.py (dentro de Motor)

Lo que pude ver es que no tengo problema cuando realizo un import desde fuera del package, como te comente la clase main hace un import de VentanaPrincipal (from Motor.VentanaPrincipal import VentanaPrincipal) y no hay problema, es mas sigue ejecutando el código, pero el problema aparece cuando dentro del package hago un impor de una clase que también esta en el package (from Motor.XML import XML), acá explota.!! Por ahí viene el problema pero no me doy cuenta bien porque pasa esto?, ya que en Windows funciona sin problemas pero en linux no. Espero haberme explicado mejor, gracias por la ayuda!! :)
  #9 (permalink)  
Antiguo 12/10/2011, 08:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ImportError: No module named .. Linux

Si estas dentro del paquete no usas el nombre del paquete.

Código Python:
Ver original
  1. #VentanaPrincipal.py
  2. form XML import XML
  #10 (permalink)  
Antiguo 12/10/2011, 09:06
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Ok, hoy cuando llegue a casa lo pruebo, ahora estoy en el trabajo, muchas gracias por la ayuda, pero lo que no entiendo es porque funciona en Windows sin problema y en linux no?, lo que me decís tiene toda la lógica, o sea va a buscar un package de nombre Motor dentro del package del nombre Motor y por eso no lo encuentra (porque en el package Motor no hay un package Motor) Sin probarlo tiene toda la pinta de que puede ser eso. Pero no entiendo, porque no se, porq funciona en windows y en linux no?, lo estoy probando el linux fedora (sugar) que diferencia hay para así aprender sobre esto.
  #11 (permalink)  
Antiguo 12/10/2011, 17:48
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Cita:
Iniciado por razpeitia Ver Mensaje
Si estas dentro del paquete no usas el nombre del paquete.

Código Python:
Ver original
  1. #VentanaPrincipal.py
  2. form XML import XML
Hola, probé lo que me dijiste y no funciono!, dio el mismo error pero sin Motor, o sea no pudo importar la clase XML, también probe realizando un
import XML sin el from y tampoco funciono!!, no se cual puede ser el error?,

alguna otra ayuda?, hay que hacer algo en linux para que funcione antes de ejecutar mi programa?, no entiendo por que no puede importar la clase o sea no entiendo por que no la encuentra?, setear algun path en linux??
  #12 (permalink)  
Antiguo 12/10/2011, 19:55
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Bueno por fin pude arreglar el error!!! gracias por la ayuda!!

El problema se arreglo cuando le cambie el nombre a mi clase, de XML.py a datosXml.py esta clase paso a estar en orden alfabético arriba de todas en mi package. Luego cuando probé en linux mágicamente funciono!!
No puedo encontrar una explicación lógica a como se soluciono, pero pude notar los siguientes cambios,

01- el nombre de mi clase no estaba mas con todas Mayúsculas o sea de XML a datosXml, no creo que importe pero fue uno de los cambios.
02 - El orden en el package cambio, de estar ultima a estar primera, esto es lo que mas pinta le veo a que halla hecho un efecto, ya que creo q el problema podía residir en que quería importar un modulo que no estaba creado antes por un tema de orden o algo? ya que antes estaba al final del package y ahora al principio.

Bueno realmente no se técnicamente por que funciono pero por las dudas les comente lo que cambie para que funcione y los cambios que vi reflejados.

Saludos y gracias por la ayuda!! :)
  #13 (permalink)  
Antiguo 14/10/2011, 10:21
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ImportError: No module named .. Linux

Bueno hice unas pruebas para determinar bien cual había sido el problema. Me da error cuanto tengo una clase con letras en Mayúsculas, por ejemplo XML, FPS, etc, cuando la clase se compone en su totalidad por letras en Mayúscula, linux fedora (sugar) da el error ImportError: No module named NOMBRECLASE, por lo tanto las solución solo es cambiar el nombre y evitar que esten todas las letras en Mayúscula, por eje Xml, Fps.
El error no da en linux ubuntu, ni en Windos, solo en linux fedora (sugar)

Saludos
Diego

Etiquetas: linux, module
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 17:07.