【问题标题】:import sqlite3 with Python2.7 on Heroku在 Heroku 上使用 Python2.7 导入 sqlite3
【发布时间】:2011-11-30 23:12:39
【问题描述】:

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

【问题讨论】:

    标签: python sqlite heroku


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,我真的认为使用 Ruby on Rails 是可能的,但似乎也不是。那我就用 PostgreSQL。
    猜你喜欢
    • 2011-12-08
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 2011-10-07
    • 2019-07-19
    • 2020-05-10
    相关资源
    最近更新 更多