我正在用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? 谢谢你的帮助。
答案 0 :(得分:1)
这在Heroku上是不可能的,因为sqlite需要永久可写文件系统。由于Heroku不提供永久可写文件系统,因此sqlite3不起作用。
需要考虑的事项:Heroku是一个分布式环境。这意味着应用程序可以在许多进程中的许多机器上运行。在您的情况下,如果允许,这将生成多个sqlite3实例(每个实例在本地运行)。