كيف يمكنني استخدام برنامج SQLite مع جانغو على ويندوز 7

StackOverflow https://stackoverflow.com/questions/1805852

سؤال

وأنا أتابع البرنامج التعليمي على موقع جانغو، وهو ما قمت به previsouly تستخدم نظام التشغيل Windows XP وذهب كل شيء على ما يرام، ولكن على ويندوز 7 أحصل على الخطأ التالي:

sqlite3.OperationalError: unable to open database file

وأنا استخدم ما يلي:

python manage.py sql Blog

هل هناك أي واحد أي أفكار ما قد يكون خطأ. يقع ملف قاعدة البيانات في C:\Software\Sqlite\Databases\Blog.db

وعلى settings.py النسبي أو جزء من هو ببساطة:

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

ولدي أيضا لأغراض الاختبار وأضافت الجميع مع أذونات كاملة.

ولكن كما قلت أنا الحصول على الخطأ التالي:

sqlite3.OperationalError: unable to open database file

وهو محل تقدير أي مساعدة،

وأندرو

هل كانت مفيدة؟

المحلول

وأنا لا أعتقد أنه يمكنك استخدام مسار النوافذ الكامل للوصول إلى قاعدة بيانات SQLite الخاص بك. لقد شغلت بعض الاختبارات هنا والطريقة الوحيدة التي يمكنني أن استخدام SQLite3 قاعدة البيانات على جانغو ليس في نفس الدليل المشروع كان يستخدم DATABASE_NAME = '../anotherfolder/db.db "(وهذا كان يقع في ج: \ anotherfolder \ وكان يقع المشروع في ج: \ mydjangoproject)

نصائح أخرى

وأعرف أن هذا السؤال بالفعل إجابة مقبولة، ولكن أعتقد أنك غاب عن شيء. يجب عليك استخدام سلاسل الخام عندما تحتوي على سلاسل الخاص بك الخطوط المائلة العكسية:

DATABASE_NAME = r'C:\Software\Sqlite\databases\blog.db' 

وهذا هو ما يحدث إذا كنت لا تستخدم سلسلة الخام:

>>> print 'C:\Software\Sqlite\databases\blog.db'
C:\Software\Sqlite\databaselog.db

وتخمين هو أن الملف هو في الواقع ليست في أن دير. إذا كان لديك UAC تمكين ويندوز 7 سوف جعلها تبدو وكأنها الملف هو في ذلك الموقع (سوف تظهر في ويندوز اكسبلورر). ومع ذلك الملف يتم تخزين حقا في ج: \ المستخدمين \ هو yourusername \ APPDATA \ المحلية \ VirtualStore \ SOFTWARE \ سكليتي \ قواعد البيانات أو موقع مماثل

وإلقاء نظرة على أذونات المجلد. يمكن الخاص بك العادية المستخدم تحرير الملفات هناك؟

وعكس مائلة في DATABASE_NAME: من C:\Software\Sqlite\databases\blog.db ل C:/Software/Sqlite/databases/blog.db

وأستخدمه جانغو 1.4 على Win7 ووكان هذا هو الحل بالنسبة لي - الملف لا يحتاج إلى موجودة بالفعل

وعكس مائلة في اسم قاعدة البيانات تحل مشكلة بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top