2011-10-04 18 views
6

Sto provando Heroku con Python, ho eseguito correttamente il "hello word" example with Flask.importare sqlite3 con Python2.7 su Heroku

Ora desidero distribuire un'applicazione molto semplice, utilizzando sqlite3 e Flask, e so che l'applicazione stava funzionando. Ma ho difficoltà a farlo funzionare, e ho il sospetto che il problema sia con sqlite.

quando ho iniziato la shell Python che fornisce Heroku, qui il log degli errori di importazione:

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

Devo aggiungere qualcosa alla requirements.txt, il file utilizzato per le dipendenze? Contiene solo Flask==0.8 finora. L'importazione di datetime negli esempi funziona come previsto. Ho guardato con heroku logs e questo messaggio appare pure, senza altri messaggi importanti.

Ho qualche modo per usare qualche sqlite3 su Heroku? Grazie per l'aiuto.

risposta

1

Questo non è possibile su Heroku, in quanto sqlite richiede un sistema di file scrivibile permanente. Poiché Heroku non fornisce un file system scrivibile permanente, sqlite3 non funzionerà.

Qualcosa da considerare: Heroku è un ambiente distribuito. Ciò significa che un'applicazione può essere eseguita su molte macchine in molti processi. Nel tuo caso, questo genererebbe più istanze sqlite3 (ciascuna eseguita localmente), se fosse consentita.

Inoltre, si veda: Heroku Devcenter - Read-only Filesystem

+0

Grazie, ho davvero pensato che fosse possibile con Ruby on Rails, ma sembra che non lo fa neanche. Userò quindi PostgreSQL. –