Come posso usare SQLITE con DJANGO su Windows 7
Domanda
Sto seguendo il tutorial sul sito DJango, che in precedenza ho fatto usando Windows XP e tutto è andato bene, ma su Windows 7 ottengo il seguente errore:
sqlite3.OperationalError: unable to open database file
Uso quanto segue:
python manage.py sql Blog
Qualcuno ha qualche idea di cosa potrebbe essere sbagliato. Il file del database si trova in C:\Software\Sqlite\D Database\Blog.db
E il relativo settings.py o la sezione di è semplicemente:
DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'C:\Software\Sqlite\databases\blog.db' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with
A scopo di test ho anche aggiunto tutti con autorizzazioni complete.
Ma come ho detto ottengo il seguente errore:
<*>Qualsiasi aiuto è apprezzato
Andrew
Soluzione
Non credo che tu possa usare un percorso completo di Windows per accedere al tuo database sqlite. Ho eseguito alcuni test qui e l'unico modo per utilizzare un database sqlite3 su django non nella stessa directory del progetto era utilizzare DATABASE_NAME = '../anotherfolder/db.db' (questo si trovava in c: \ anotherfolder \ e il progetto si trovava in c: \ mydjangoproject)
Altri suggerimenti
So che questa domanda ha già una risposta accettata, ma penso che ti sia perso qualcosa. È necessario utilizzare stringhe non elaborate quando le stringhe contengono barre rovesciate:
DATABASE_NAME = r'C:\Software\Sqlite\databases\blog.db'
Questo è ciò che accade se non si utilizza una stringa non elaborata:
>>> print 'C:\Software\Sqlite\databases\blog.db'
C:\Software\Sqlite\databaselog.db
Un'ipotesi è che il file non si trovi effettivamente in quella directory. Se hai abilitato UAC, Windows 7 farà sembrare che il file si trovi in ??quella posizione (verrà mostrato in Windows Explorer). Tuttavia, il file è realmente archiviato in c: \ utenti \ nomeutente \ AppData \ Local \ VirtualStore \ Software \ Sqlite \ database o in una posizione simile.
Dai un'occhiata alle autorizzazioni della cartella. Il tuo utente normale può modificare i file lì?
Invertire le barre in DATABASE_NAME:
da C: \ Software \ Sqlite \ d Database \ blog.db
a
C: /Software/Sqlite/databases/blog.db
Sto usando django 1.4 su Win7 e questa è stata la soluzione per me - il file non deve esistere già
L'inversione delle barre nel nome del database ha risolto il problema per me.