在Heroku上用Python2.7导入sqlite3

时间:2011-10-04 19:25:51

标签: python sqlite heroku

我正在用Python尝试Heroku,我成功运行了"hello word" example with Flask

我现在想要部署一个非常基本的应用程序,使用sqlite3和Flask,我知道应用程序正在运行。但我无法让它工作,我怀疑问题是sqlite。

当我启动Heroku提供的Python shell时,这里是导入错误日志:

$ heroku run python     
Running python attached to terminal... up, run.2
Python 2.7.1 (r271:86832, Jun 26 2011, 01:08:11) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3
>>>

我是否需要在requirements.txt添加内容,用于依赖项的文件?到目前为止它只包含Flask==0.8。示例中的导入日期时间按预期工作。我查看heroku logs并显示此消息,没有任何其他重要消息。

我有没有办法在Heroku上使用一些sqlite3? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这在Heroku上是不可能的,因为sqlite需要永久可写文件系统。由于Heroku不提供永久可写文件系统,因此sqlite3不起作用。

需要考虑的事项:Heroku是一个分布式环境。这意味着应用程序可以在许多进程中的许多机器上运行。在您的情况下,如果允许,这将生成多个sqlite3实例(每个实例在本地运行)。

另请参阅:Heroku Devcenter - Read-only Filesystem