python - serial - module object has no attribute thread
módulo no tiene atributo (3)
Tengo un directorio con un número de archivos .py en él. Cada archivo define algunas clases. También tengo un __init__.py vacío en el directorio.
Por ejemplo:
myproject
__init__.py
mymodule
__init__.py
api.py
models.py
views.py
Estoy intentando importar mymodule y acceder a las clases definidas en todos estos archivos:
from myproject import mymodule
print mymodule.api.MyClass
Me da un error diciendo que mymodule no tiene atributo api . ¿Por qué? ¿Y por qué puedo acceder solo a uno de los archivos ( models.py ) y no a los otros?
In [2]: dir(banners)
Out[2]:
[''__builtins__'',
''__doc__'',
''__file__'',
''__name__'',
''__package__'',
''__path__'',
''models'']
El problema es que los submódulos no se importan automáticamente. Tienes que importar explícitamente el módulo api :
import myproject.mymodule.api
print myproject.mymodule.api.MyClass
Si realmente insiste en que la api esté disponible al importar myproject.mymodule , puede poner esto en myproject/mymodule/__init__.py :
import myproject.mymodule.api
Entonces esto funcionará como se espera:
from myproject import mymodule
print mymodule.api.MyClass
Los módulos no funcionan así.
from myproject.mymodule import api
print api.MyClass
También necesita un __init__.py en el directorio myproject. Entonces tu estructura de módulo debería ser:
myproject
__init__.py
mymodule
__init__.py
api.py
models.py
views.py