2011-10-04 36 views
6

Tôi đang thử Heroku bằng Python, tôi chạy thành công "hello word" example with Flask.nhập sqlite3 với Python2.7 trên Heroku

Tôi bây giờ muốn triển khai một ứng dụng rất cơ bản, sử dụng sqlite3 và Flask, và tôi biết ứng dụng đang hoạt động. Nhưng tôi gặp khó khăn khi làm việc đó, và tôi nghi ngờ vấn đề là với sqlite.

Khi tôi bắt đầu vỏ Python Heroku cung cấp, ở đây các bản ghi lỗi nhập khẩu:

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

Tôi có cần phải thêm vài thứ vào requirements.txt, các tập tin sử dụng cho phụ thuộc? Nó chỉ chứa Flask==0.8 cho đến nay. Nhập ngày giờ trong các ví dụ hoạt động như mong đợi. Tôi đã xem với heroku logs và thông báo này cũng xuất hiện mà không có bất kỳ thông báo quan trọng nào khác.

Tôi có cách nào để sử dụng một số sqlite3 trên Heroku không? Cảm ơn bạn đã trợ giúp.

Trả lời

1

Điều này là không thể đối với Heroku, vì sqlite yêu cầu hệ thống tệp có thể ghi vĩnh viễn. Vì Heroku không cung cấp một hệ thống tệp có thể ghi vĩnh viễn, sqlite3 sẽ không hoạt động.

Điều cần xem xét: Heroku là môi trường phân tán. Điều này có nghĩa là một ứng dụng có thể chạy trên nhiều máy trong nhiều quy trình. Trong trường hợp của bạn, điều này sẽ tạo ra nhiều trường hợp sqlite3 (mỗi chạy tại địa phương), nó được cho phép.

Ngoài ra, xem: Heroku Devcenter - Read-only Filesystem

+0

Cảm ơn, tôi thực sự nghĩ rằng nó là có thể với Ruby on Rails, nhưng Dường như nó không hai. Tôi sẽ sử dụng PostgreSQL sau đó. –

Các vấn đề liên quan