Django - Heroku pu sh успешно, но получает AttributeError (модуль не имеет атрибута) - PullRequest
0 голосов
/ 16 апреля 2020

Я переместил свое веб-приложение в Heroku, и оно прекрасно сработало / развернулось, но при доступе к нему я получаю эту ошибку:

AttributeError at /
module 'wakemeup.models' has no attribute 'environment'
Exception Location: /app/lib/UsefulFunctions/googleUtils.py in <module>, line 16
Python Executable:  /app/.heroku/python/bin/python
Python Version: 3.6.10
Python Path:    
['/app/.heroku/python/bin',
 '/app',
 '/app/.heroku/python/lib/python36.zip',
 '/app/.heroku/python/lib/python3.6',
 '/app/.heroku/python/lib/python3.6/lib-dynload',
 '/app/.heroku/python/lib/python3.6/site-packages']

Локально работает, поэтому моей первой мыслью было PYTHONPATH , но кажется, что это локально похоже:

Python Path:    
['C:\\Users\\ravioli\\projects\\dcp',
 'C:\\Program Files (x86)\\Python38-32\\python38.zip',
 'C:\\Program Files (x86)\\Python38-32\\DLLs',
 'C:\\Program Files (x86)\\Python38-32\\lib',
 'C:\\Program Files (x86)\\Python38-32',
 'C:\\Program Files (x86)\\Python38-32\\lib\\site-packages']

Структура каталогов (упрощенно)

enter image description here

googleUtils.py (упрощенно)

import os
import sys
import io
import copy
from urllib.error import HTTPError

# Import - Google
from google.oauth2 import service_account
...

# Import - Application
from lib.UsefulFunctions.dataUtils import get_setting
import wakemeup.models.environment as env

class GoogleDriveManager():
 ...

У меня изначально была строка import wakemeup.models.environment as env как from ... import, но это приводило к циклической ошибке зависимости, поэтому я изменил ее, и она работает хорошо на месте. Не уверен, что это связано с этим.

Как я могу это исправить, чтобы он работал на Heroku?

1 Ответ

0 голосов
/ 17 апреля 2020

Я изменил оператор импорта, и теперь он работает:

from wakemeup import models
# import wakemeup.models.environment as env # original

Возможно, был еще один модуль с именем environment, который использует Heroku, не уверен.

...