ModuleNotFoundError Django views - PullRequest
       3

ModuleNotFoundError Django views

0 голосов
/ 19 мая 2019

Я создал отдельный модуль (sources.py) в моем проекте django, чтобы содержать функции и не допустить превращения моего модуля views в полный кошмар.

Когда я импортирую sources.py в views.py, вызываю функцию, которую он содержит, и запускаю код с оператором print, чтобы убедиться, что вызываемый объект точно импортируется, все работает нормально, и я вижу напечатанное, что я ожидаю ,

Однако, когда я пытаюсь запустить приложение на локальном сервере, я получаю ModuleNotFoundError.

Если я включаю код из функции в представления, а затем запускаю локальный сервер, все работает просто отлично.

Модуль явно импортируется, иначе оператор print не будет работать. Однако что-то теряется при попытке запуска на локальном сервере.

Я прошел через тонну вопросов о стековом потоке, учебных пособий по модулям python и django, а также вопросов, расположенных в других местах, и кажется, что ничего не решило проблему. Ниже весь код.

sources.py и views.py находятся в одном каталоге. (BetrTV / betrTV_app / file.py)

Я также пытался "import sources * с original = sources.video(), который вызвал ту же проблему, что и import . sources


from django.shortcuts import render
from django.http import HttpResponse
from datetime import date
from sources import video


''' returns a dict of unique video identifiers (last 11 chars)'''

original = video()
print(original)
sources = []


# strip out all except the unique source code
for i in range(len(original)):
    source = original[i]
    source = source[30:]
    sources.append(source)

# Checked out... print(sources)

# create day of week to pull video
day = date.today()
num = str(day)[9]

# pull source from list by using 'num' from 'day'
source = sources[int(num)]

def index(request):
    ''' The home page for betrTV_app '''

    video = 'class="video-frame" width="1200" height="600"\
        + src="https://www.youtube.com/embed/%s"\
        + frameborder="0" allow="accelerometer; autoplay; encrypted-media; \
        + gyroscope; picture-in-picture" allowfullscreen' %source


    html = '<html><body><link href="https://fonts.googleapis.com/css?family=Gugi"\
        + rel="stylesheet"><h1 style="color: grey; font-family: Gugi; font-size: \
        + 20px;">BetrTV... Empowerment on Demand</h1>\
        <iframe %s></iframe></body></html>' %video

    return HttpResponse(html)


INSTALLED_APPS = [

...

    # My Apps
    'betrTV_app',
]

File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\Prometheus\Dropbox\LVL6\Programming\Python\betrTV\betrTV\urls.py", line 21, in <module>
  path('', include('betrTV_app.urls')),
File "C:\Users\Prometheus\Envs\betr_env\lib\site-packages\django\urls\conf.py", line 34, in include
  urlconf_module = import_module(urlconf_module)
File "C:\Users\Prometheus\Envs\betr_env\lib\importlib\__init__.py", line 127, in import_module
  return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\Prometheus\Dropbox\LVL6\Programming\Python\betrTV\betrTV_app\urls.py", line 4, in <module>
  from . import views
File "C:\Users\Prometheus\Dropbox\LVL6\Programming\Python\betrTV\betrTV_app\views.py", line 4, in <module>
  from sources import video
ModuleNotFoundError: No module named 'sources'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...