0

当前系统:Windows XP / Windows 7(两者都出现问题)

遵循以下部署指南后:

https://devcenter.heroku.com/articles/python

通过使用简单的投票应用程序进行测试,我成功地通过 heorku 推送应用程序,除了在检查日志后出现以下错误:

2012-04-27T08:14:42+00:00 app[web.1]: django.core.exceptions.ImproperlyConfigure
d: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No m
odule named _sqlite3

尝试同步数据库时也会发生这种情况。

这是settings.py文件中数据库的当前配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'database.sqlite', # Or path to database file if using sqlite3.
        'USER': '', # Not used with sqlite3.
        'PASSWORD': '', # Not used with sqlite3.
        'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '', # Set to empty string for default. Not used with sqlite3.
    }
}

我知道它是一个 sqlite3 数据库,并且我被告知它仍然应该允许 heroku 部署应用程序而不会出现任何错误。我已经使用了以下与此问题相关的潜在解决方案:

没有名为 _sqlite3 的模块 如何使用 Django 项目设置 SQLite? http://groups.google.com/group/django-users/browse_thread/thread/185f981f432346f1

任何帮助将不胜感激!如果需要其他信息,请告诉我。

4

2 回答 2

1

Heroku 不支持 sqlite,因为它只提供只读文件系统

于 2012-04-27T11:08:24.520 回答
0

我对设置文件有同样的错误。查看 Heroku 日志,结果发现我的 settings.py 文件由于各种原因而失败。一旦我解决了这些问题,Django 就不再抱怨缺少数据库设置了。

导致此问题的原因之一是我用来允许子选择作为 QuerySet 中的表extra()的猴子补丁。此补丁位于我的设置文件的末尾。

# Override default behaviour of compiler to quote table names when table name is a sub-query
from django.db.models.sql.compiler import SQLCompiler
_quote_name_unless_alias = SQLCompiler.quote_name_unless_alias
SQLCompiler.quote_name_unless_alias = lambda self,name: name if name.startswith('(') else _quote_name_unless_alias(self,name)

这个补丁显然要求在那个时候已经正确指定了 DATABASES。由于 Heroku 将魔术 DATABASES 配置附加到设置文件的末尾(即在猴子补丁之后),我不得不手动将它们的配置插入到我的猴子补丁之上。

于 2012-05-29T13:09:04.807 回答