Django: No se pueden importar módulos

Estoy tratando de importar un módulo en mi views.py como

from django.shortcuts import render # Create your views here. from viewcreator import Builder import json def index(request): a,b=Builder.buildChartJSON() print(json.dumps(a)) print(json.dumps(b)) return render(request, 'hdfsStats/hdfscharts.html', {'sourcepoints': a, 'sizepoints': b}) 

Y aquí es cómo se ve la configuración de mi proyecto

introduzca la descripción de la imagen aquí

¿Por qué no puedo importar los módulos en mi vista? No quiero crear estas clases en los modelos.py. Estas clases solo están destinadas a realizar algunos cálculos y devolver dos objetos json, que luego envío a mi página web

Aquí está mi configuración.

 """ Django settings for mysite project. Generated by 'django-admin startproject' using Django 1.9.4. For more information on this file, see https://docs.djangoproject.com/en/1.9/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.9/ref/settings/ """ import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '9mxuqginh(vhh*2eu6j58kbq+%+7ql4_pn3k#yf+n96uv0rymq' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'hdfsStats.apps.HdfsstatsConfig' ] MIDDLEWARE_CLASSES = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'mysite.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'mysite.wsgi.application' # Database # https://docs.djangoproject.com/en/1.9/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } # Password validation # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/1.9/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.9/howto/static-files/ STATIC_URL = '/static/' 

¿me falta alguna configuración?

Stacktrace

 File "XXX:\mysite\hdfsStats\urls.py", l ine 3, in  from . import views File "XXX:\mysite\hdfsStats\views.py", line 5, in  from viewcreator import Builder ImportError: No module named 'viewcreator' 

Actualizar

estructura actual

introduzca la descripción de la imagen aquí

y mis vistas.py

desde django.shortcuts importar render

 # Create your views here. from .src.viewcreator import Builder import json def index(request): a,b=Builder.buildChartJSON() print(json.dumps(a)) print(json.dumps(b)) return render(request, 'hdfsStats/hdfscharts.html', {'sourcepoints': a, 'sizepoints': b}) 

pero ahora entiendo

 from propreader import ReadProp ImportError: No module named 'propreader' 

básicamente tengo cuatro paquetes

 viewcreator propreader esconnector ping 

las clases en estos paquetes realizan algunos cálculos basados ​​en los archivos de propiedades en estas dos carpetas

 props resources 

que he puesto al mismo nivel que la carpeta src

Ya que estos son cálculos de una sola vez, no quiero crear modelos para estos. ¿Cuál es la forma correcta para que yo configure mi proyecto Django en este escenario? Necesito el proyecto Django para alojar una página web que muestre los resultados de mis cálculos.

En tu INSTALLED_APPS

 INSTALLED_APPS = [ ..., 'HdfsstatsConfig', ] 

en tus vistas.py

 from .viewcreator import Builder 

ACTUALIZACIÓN, IMPORTACIONES DE DJANGO

Hay 3 formas de importar módulo en django.

1. Importación absoluta: importe un módulo desde fuera de su aplicación actual. Ejemplo desde myapp.views import HomeView introduzca la descripción de la imagen aquí

2. Importación explícita: importe un módulo desde su aplicación actual introduzca la descripción de la imagen aquí

3. Importación relativa: igual que la importación explícita pero no recomendada

 from models import MyModel 

introduzca la descripción de la imagen aquí