在Heroku上使用Python2.7导入sqlite3

2024-04-25 23:38:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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吗? 谢谢你的帮助。在


Tags: infrompyimport应用程序flaskherokulib
1条回答
网友
1楼 · 发布于 2024-04-25 23:38:58

这在Heroku上是不可能的,因为sqlite需要一个永久的可写文件系统。由于Heroku不提供永久的可写文件系统,sqlite3无法工作。在

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

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

相关问题 更多 >