python3 modulenotfounderror mac instalar python import

modulenotfounderror - ImportError: Ningún módulo llamado-Python



modulenotfounderror no module named ''matplotlib'' windows (5)

Para que la importación del módulo de Python funcione, debe tener "src" en su ruta, no "gen_py / lib".

Al procesar una importación como la import gen_py.lib , busca un módulo gen_py , luego busca un submódulo lib .

Como el módulo gen_py no estará en "../gen_py/lib" (estará en ".."), la ruta que agregó no ayudará en nada al proceso de importación.

Dependiendo de dónde lo está ejecutando, intente agregar la ruta relativa a la carpeta "src". Tal vez sea sys.path.append(''..'') . También puede tener éxito ejecutando el script mientras está dentro de la carpeta src directamente, a través de rutas relativas como python main/MyServer.py

Tengo una aplicación de Python con la siguiente estructura de directorio:

src | +---- main | +---- util | +---- gen_py | +---- lib

En el paquete principal , tengo un módulo de Python llamado MyServer.py que tiene una instrucción de importación como:

from gen_py.lib import MyService

Para que esta afirmación funcione, coloqué la siguiente línea al comienzo de MyServer.py :

import sys sys.path.append(''../gen_py/lib'')

Cuando ejecuto MyServer.py en el terminal, aparece el siguiente error:

ImportError: Ningún módulo llamado gen_py.lib

¿Qué me falta aquí?


from ..gen_py.lib import MyService

o

from main.gen_py.lib import MyService

Asegúrese de tener un archivo __init__.py (al menos vacío) en cada directorio.


Su modificación de sys.path supone que el directorio de trabajo actual siempre está en main/ . Este no es el caso. En su lugar, simplemente agregue el directorio padre a sys.path :

import sys import os.path sys.path.append(os.path.join(os.path.dirname(__file__), ''..'')) import gen_py.lib

No olvide incluir un archivo __init__.py en gen_py y lib; de lo contrario, no se reconocerán como módulos de Python.


asegúrese de incluir __init__.py , lo que hace que Python sepa que esos directorios contienen paquetes


Esto es si está creando un paquete y está encontrando un error en las importaciones. Lo aprendí de la manera más difícil. La respuesta es no agregar el paquete a la ruta de Python o hacerlo programáticamente (¿qué pasa si tu módulo se instala y tu comando lo vuelve a agregar?), Eso es una mala manera.

Lo correcto es: 1) Usar virtualenv pyvenv-3.4 o algo similar 2) Activar el modo de desarrollo - $ python setup.py desarrollar