首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Cookiecutter-Django应用程序部署到Heroku时出错

将Cookiecutter-Django应用程序部署到Heroku时出错
EN

Stack Overflow用户
提问于 2020-04-21 20:14:29
回答 1查看 197关注 0票数 1

我正在使用Django Cookiecutter样板,使用Docker。一切在本地都运行得很好,所以现在我试着按照这个指南将这个应用部署到Heroku上:Deployment on Heroku。我使用的是Django 3和Rest框架。Docker for development。

运行config命令后,我推送到Heroku master,并得到以下错误:

代码语言:javascript
复制
Error while running '$ python manage.py collectstatic --noinput'.

下面是跟踪信息:

代码语言:javascript
复制
remote: -----> $ python manage.py collectstatic --noinput
remote:        Traceback (most recent call last):
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/environ/environ.py", line 273, in get_value
remote:            value = self.ENVIRON[var]
remote:          File "/app/.heroku/python/lib/python3.7/os.py", line 679, in __getitem__
remote:            raise KeyError(key) from None
remote:        KeyError: 'SENDGRID_API_KEY'
remote:        During handling of the above exception, another exception occurred:
remote:        Traceback (most recent call last):
remote:          File "manage.py", line 31, in <module>
remote:            execute_from_command_line(sys.argv)
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
remote:            utility.execute()
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute
remote:            self.fetch_command(subcommand).run_from_argv(self.argv)
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 231, in fetch_command
remote:            settings.INSTALLED_APPS
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/django/conf/__init__.py", line 76, in __getattr__
remote:            self._setup(name)
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/django/conf/__init__.py", line 63, in _setup
remote:            self._wrapped = Settings(settings_module)
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/django/conf/__init__.py", line 142, in __init__
remote:            mod = importlib.import_module(self.SETTINGS_MODULE)
remote:          File "/app/.heroku/python/lib/python3.7/importlib/__init__.py", line 127, in import_module
remote:            return _bootstrap._gcd_import(name[level:], package, level)
remote:          File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
remote:          File "<frozen importlib._bootstrap>", line 983, in _find_and_load
remote:          File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
remote:          File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
remote:          File "<frozen importlib._bootstrap_external>", line 728, in exec_module
remote:          File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
remote:          File "/tmp/build_027dd19e3113d3ba2634e63f0f93e673/config/settings/production.py", line 128, in <module>
remote:            "SENDGRID_API_KEY": env("SENDGRID_API_KEY"),
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/environ/environ.py", line 123, in __call__
remote:            return self.get_value(var, cast=cast, default=default, parse_default=parse_default)
remote:          File "/app/.heroku/python/lib/python3.7/site-packages/environ/environ.py", line 277, in get_value
remote:            raise ImproperlyConfigured(error_msg)
remote:        django.core.exceptions.ImproperlyConfigured: Set the SENDGRID_API_KEY environment variable

在错误下面,我得到了使用以下命令禁用收集静态的消息:

代码语言:javascript
复制
$ heroku config:set DISABLE_COLLECTSTATIC=1

我运行上面的命令并继续执行,但下一个命令不起作用,因为Heroku找不到manage.py文件

代码语言:javascript
复制
heroku run python manage.py createsuperuser

我在网上搜索了各种部署指南,但看起来在Heroku上部署Django应用程序并不像在Rails上那么简单。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 04:06:11

该错误表明应用程序缺少环境变量SENDGRID_API_KEY。这听起来像是文档错误,如果你有一分钟的时间,如果你能请report it我将不胜感激。

基本上,Heroku的部署假设您使用Mailgun作为电子邮件服务,因为它会要求您运行:

代码语言:javascript
复制
heroku addons:create mailgun:starter

但是,您似乎选择了Sendgrid,这是最近引入的一个选项(请参阅PR #2435),但此页面没有相应地更新。

要解决您的问题,您需要将Sendgrid add-on添加到您的应用程序。在Heroku中添加之后,您应该能够单击add-on来访问您的Sendgrid仪表板,在那里您需要创建一个API key as per this guide,并将其添加到Heroku应用程序following this guide的配置变量中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61343329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档