импортировать sqlite3 с Python2.7 на Heroku - PullRequest
6 голосов
/ 04 октября 2011

Я пробую Heroku с Python, я успешно выполнил пример "hello word" с Flask .

Теперь я хочу развернуть очень простое приложение, используя sqlite3 и Flask,и я знаю, что приложение работало.Но я не могу заставить его работать, и я подозреваю, что проблема с sqlite.

Когда я запустил оболочку Python, которую предоставляет Heroku, вот журнал ошибок импорта:

$ 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
>>>

DoМне нужно что-то добавить в requirements.txt, файл, используемый для зависимостей?Пока содержит только Flask==0.8.Импорт datetime в примерах работает как положено.Я посмотрел с heroku logs, и это сообщение также появляется, без каких-либо других важных сообщений.

Есть ли у меня какой-либо способ использовать sqlite3 на Heroku?Спасибо за помощь.

1 Ответ

1 голос
/ 05 октября 2011

Это невозможно в Heroku, поскольку для sqlite требуется постоянная доступная для записи файловая система. Поскольку Heroku не предоставляет файловой системы с постоянной записью, sqlite3 не будет работать.

Что следует учитывать: Heroku - это распределенная среда. Это означает, что приложение может запускаться на многих машинах в рамках многих процессов В вашем случае это создаст несколько экземпляров sqlite3 (каждый работает локально), если это будет разрешено.

Также см .: Heroku Devcenter - Файловая система только для чтения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...