Django Heroku 推送在第一次后因 Grep 使用错误而失败

选择死亡

我有一个简单的 Django 应用程序,我正在尝试将其部署到 Heroku。

我已按照将您的应用程序部署到 Heroku部分中概述的步骤操作https : //devcenter.heroku.com/articles/deploying-python

我正在分行工作heroku

当我这样做时git push heroku heroku:master,它第一次能够推送,一切都成功并部署了应用程序,但是当我转到应用程序主页时,我收到一个 503 错误,表明它favicon.ico丢失了。然后我提交任何小的更改,并再次尝试推送,我收到以下错误:

Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 360 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing requirements with pip
remote:        Usage: grep [OPTION]... PATTERN [FILE]...
remote:        Try 'grep --help' for more information.
remote:
remote: -----> $ python manage.py collectstatic --noinput
remote:        Traceback (most recent call last):
remote:          File "manage.py", line 22, in <module>
remote:            execute_from_command_line(sys.argv)
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
remote:            utility.execute()
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 337, in execute
remote:            django.setup()
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
remote:            apps.populate(settings.INSTALLED_APPS)
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
remote:            app_config.import_models()
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
remote:            self.models_module = import_module(models_module_name)
remote:          File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module
remote:            __import__(name)
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/models.py", line 4, in <module>
remote:            from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/base_user.py", line 52, in <module>
remote:            class AbstractBaseUser(models.Model):
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 124, in __new__
remote:            new_class.add_to_class('_meta', Options(meta, app_label))
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 331, in add_to_class
remote:            value.contribute_to_class(cls, name)
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/options.py", line 214, in contribute_to_class
remote:            self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/db/__init__.py", line 33, in __getattr__
remote:            return getattr(connections[DEFAULT_DB_ALIAS], item)
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py", line 211, in __getitem__
remote:            backend = load_backend(db['ENGINE'])
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py", line 115, in load_backend
remote:            return import_module('%s.base' % backend_name)
remote:          File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module
remote:            __import__(name)
remote:          File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/postgresql/base.py", line 25, in <module>
remote:            raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
remote:        django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2
remote:
remote:  !     Error while running '$ python manage.py collectstatic --noinput'.
remote:        See traceback above for details.
remote:
remote:        You may need to update application code to resolve this error.
remote:        Or, you can disable collectstatic for this application:
remote:
remote:           $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote:        https://devcenter.heroku.com/articles/django-assets
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed
remote: Verifying deploy....
remote:
remote: !   Push rejected to stark-fortress-79930.

我尝试过的事情:

  • 删除和重新创建应用程序,仍然每两次推送一致
  • 运行heroku run bash,并手动运行命令,同样的错误
  • 添加psycopg2到我的requirements.txt
  • 修改和删除部分静态文件块settings.py,这是我目前拥有的:

    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
    STATIC_URL = '/static/'
    
    # Extra places for collectstatic to find static files.
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )
    

favicon.ico里面有BASE_DIR/static.

这是我的requirements.txt

beautifulsoup4==4.6.0
Cheetah==2.4.4
coverage==4.4.1
dj-database-url==0.4.2
Django==1.11.3
django-app-namespace-template-loader==0.4.1
django-blog-zinnia==0.18.1
django-contrib-comments==1.8.0
django-mptt==0.8.7
django-tagging==0.4.5
django-xmlrpc==0.1.7
gunicorn==19.7.1
mercurial==4.2.2
mots-vides==2015.5.11
olefile==0.44
Pillow==4.2.1
psycopg2==2.7.3
pyparsing==2.2.0
pytz==2017.2
PyYAML==3.11
regex==2017.7.11
six==1.10.0
virtualenv==14.0.6
whitenoise==3.3.0
zinnia-theme-bootstrap==0.5.1

任何人都能够阐明我做错了什么?

莫雷尔

您的问题是错误输出中的这一行:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

添加psycopg2到您的requirements.txt. 您设置的其他部分是设置 Postgres 数据库,您必须安装数据库驱动程序包才能使其工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在第一次匹配后使用grep(或类似方法)获取字符串

如何使Django UpdateView仅在第一次使用?

仅使用grep查找仅第一次出现

推送到 Heroku 失败 - Python Django

Pytest 在第一次失败后停止运行

第一次保存后发生TransientObjectException错误

第一次 cout 后的错误值

在第一次或第二次出现四位数的字符串后,使用grep删除文本。带连字符的文本问题

使功能第一次使用Tkinter单击后只能运行一次吗?

第一次“使用”后,JTextField的动作侦听器失败

Django:连续查询集过滤在第一次查询后停止过滤

提交失败后,如何使用错误数据更新表单?

第一次使用Mockito

Laravel - 第一次使用

第一次使用MVC

第一次使用 FOR

使用 selenium 运行循环会在第一次迭代后引发错误

Django迁移在Heroku中失败

第一次失败后,如何使此Sudoku算法变得不粘滞?

第一次运行修改后的代码时编译失败

第一次失败后如何使junit测试停止

Firebase调度功能在第一次调度后失败

在第一次期望失败后停止茉莉花测试

如何让模型绑定在第一次失败后不停止

ddrescue:第一次运行后重试失败的块

Flutter:第一次读取文件失败,但在热重载后工作

UICollectionView大小在第一次加载时在sizeForItemAt中是错误的-旋转后可以工作

我的 PyCFunction 第一次工作,但在连续迭代后导致段错误

WordPress: $wpdb->get_results(); 第一次循环后返回错误结果