ImportError:导入 dj_database_url ImportError:没有名为“dj_database_url”的模块
Posted
技术标签:
【中文标题】ImportError:导入 dj_database_url ImportError:没有名为“dj_database_url”的模块【英文标题】:ImportError : import dj_database_url ImportError: No module named 'dj_database_url' 【发布时间】:2018-02-08 09:50:29 【问题描述】:我正在尝试使用 Django + Heroku + 所有必要的依赖项来创建我的应用程序。
按照以下步骤操作后:
migrating an existing django project
但是,当我运行 python3 manage.py runserver
时,我不断收到此错误:
导入 dj_database_url ImportError: 没有名为“dj_database_url”的模块
我已尝试使用 these instructions 和 this 修复它
这是我的代码:
我导入了 dj-database-url
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
我添加了以下静态资产必需品
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'
# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
这在我的 requirements.txt 文件中
dj-database-url==0.4.2
gunicorn==19.7.1
白噪声==3.3.0
我仍然收到ImportError
。我该如何解决?
【问题讨论】:
这个错误是在本地服务器上还是在 Heroku 上? @SachinKukreja 我不确定。错误路径是这样的:/Users/iivri.andre/virtualenvironment/new_app/Tut/Tut/settings.py, line 14,
我认为是本地的
pip freeze
的输出包含dj-database-url
?在虚拟环境中安装它?重启gunicorn?尝试使用 django 开发服务器?
@SachinKukreja 在我执行了这些步骤之后:migrate existing django project 我跑了python3 manage.py runserver
所以我不确定我对gunicorn
做了什么
不要忘记在推送之前提交更改,否则您将不断收到相同的错误
【参考方案1】:
您是否使用类似的东西安装了库
pip install -r requirements.txt
或
pip install dj-database-url==0.4.2
或
.env/bin/pip install dj-database-url==0.4.2
?
【讨论】:
我使用来自migrating an existing django project的pip install dj-database-url
【参考方案2】:
数据库 url 用于将您的数据库与 Heroku 挂钩/连接。试试这个方法。
if 'DATABASE_URL' in os.environ:
DATABASES =
'default': dj_database_url.parse(os.environ.get('DATABASE_URL'))
else:
print("Postgres URL not found, using sqlite instead")
DATABASES =
'default':
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
另外,请检查您是否在 Heroku 设置中将 DATABASE_URL
添加到 config vars
中。此外,还要检查您是否在config vars
中添加了您的SECRET_KEY
,以及您是否正确配置了您的ALLOWED_HOSTS`` as they have to be states like this in your
settings.py```:
SECRET_KEY = os.environ.get("SECRET_KEY")
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['<your-app-name>.herokuapp.com', '127.0.0.1']
你的requirement.txt
必须是这样的:
dj-database-url==0.5.0
Django==1.11.24
django-forms-bootstrap==3.1.0
gunicorn==20.0.4
Pillow==7.0.0
psycopg2-binary==2.8.4
pytz==2019.3
whitenoise==5.0.1
【讨论】:
【参考方案3】:这对我有用
from django.conf.urls import url
from django.urls import reverse_lazy
from django.contrib.auth.views import PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView, PasswordResetCompleteView
urlpatterns = [
url(
'accounts/password_reset/',
PasswordResetView.as_view(),
name='password_reset'
),
url(
'accounts/password_reset_done/',
PasswordResetDoneView.as_view(),
name='password_reset_done'
),
url(
'accounts/password_reset_confirm/',
PasswordResetConfirmView.as_view(),
name='password_reset_confirm'
),
url(
'accounts/password_reset_complete/',
PasswordResetCompleteView.as_view(),
name='password_reset_complete'
),
]
【讨论】:
以上是关于ImportError:导入 dj_database_url ImportError:没有名为“dj_database_url”的模块的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:无法导入名称“AFAVSignature”
ImportError:无法导入名称 VarianceThreshold