_Sqlite3 नाम का कोई मॉड्यूल नहीं


136

मैं डेबियन चलने वाले अपने वीपीएस पर एक Django ऐप चलाने की कोशिश कर रहा हूं । जब मैं डेमो ऐप चलाता हूं, तो यह इस त्रुटि के साथ वापस आता है:

  File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in     import_module
    __import__(name)

  File "/usr/local/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 30, in <module>
    raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that     order): No module named _sqlite3

अजगर को स्थापित करते हुए देखते हुए, यह एक ही त्रुटि देता है:

Python 2.5.2 (r252:60911, May 12 2009, 07:46:31) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] 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.5/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3
>>>

वेब पर पढ़ना, मुझे पता है कि पायथन 2.5 में सभी आवश्यक SQLite रैपर शामिल होने चाहिए। क्या मुझे पायथन को पुन: स्थापित करने की आवश्यकता है, या इस मॉड्यूल को चालू करने और चलाने का कोई और तरीका है?


1
समान समस्या स्रोत से संकलित अजगर 3.5.5 के लिए है
एलेक्स-बोगडानोव

जवाबों:


133

ऐसा लगता है कि आपके मेकफाइल में उपयुक्त .soफ़ाइल शामिल नहीं थी । आप इस समस्या को नीचे दिए गए चरणों से ठीक कर सकते हैं:

  1. स्थापित करें sqlite-devel(या libsqlite3-devकुछ डेबियन-आधारित सिस्टम पर)
  2. पाइथन को पुनः कॉन्फ़िगर करें और पुनः संकलित करें ./configure --enable-loadable-sqlite-extensions && make && sudo make install

ध्यान दें

sudo make installबात यह है कि अजगर संस्करण सेट सिस्टम-वाइड मानक, अनपेक्षित परिणाम हो सकते हैं जो होने के लिए होगा। यदि आप इस आदेश को अपने कार्य केंद्र पर चलाते हैं, तो आप संभवतः इसे मौजूदा अजगर के साथ स्थापित करना चाहते हैं , जिसके साथ किया जा सकता है sudo make altinstall


धन्यवाद jammyWolf। मुझे नहीं लगता कि मैंने पहली बार फ़ाइल को "खो" दिया था, जिसे मैंने कॉन्फ़िगर किया था, बल्कि, कि रनिंग साइक्लाइट-डेवेल के साथ पहले से ही स्थापित इस सभी अंतर को बनाया।
जेफ टेलर

4
मैं कैसे स्थापित कर सकता हूं sqlite-devel? मैं एक स्वनिर्धारित linux system.I हाल ही में डाउनलोड पर हूँ sqlite-autoconf-3100200.tar.gzऔर चलाने ./configure, make && make install। मैं python3 recompile के बाद यह अभी भी काम नहीं कर रहा हूँ।
एंटीमोरन

2
इसे पढ़ने वाले किसी व्यक्ति के लिए, उत्तर में कॉन्फ़िगर विकल्प जोड़ना सुनिश्चित करें। यही मुझे बचा भी लिया। अन्यथा यह मायने नहीं रखेगा कि आपने libsqlite3-dev स्थापित किया है।
ticster

3
मैं कैसे जांच करूं कि कॉन्फ़िगर स्क्रिप्ट कहां है?
जेना क्वॉन

1
इन समाधानों में से कोई भी (रेफरी: इस पेज पर सभी) अजगर 3.8.3 के साथ अमेज़ॅन लाइनक्स के लिए काम करते हैं
bgenchel

80

मुझे एक ही समस्या थी ( python2.5उबंटू ल्यूसिड पर स्रोत से निर्माण ), और import sqlite3इसी अपवाद को फेंक दिया। मैंने libsqlite3-devपैकेज मैनेजर से स्थापित किया है , python2.5 को पुन: स्थापित किया, और फिर आयात ने काम किया।


6
बिल्कुल सही! आपको बाइनरी फ़ाइलों और वातावरण के साथ मैन्युअल रूप से हेरफेर करने की आवश्यकता नहीं है। मेरे मामले में मैं पहले से ही पायथन 2.7 स्रोत से बनाया गया था, इसलिए, संकलन को छोटा करने के लिए मैंने apt-get install libsqlite3-dev निष्पादित किया है; कॉन्फ़िगर; कामचलाऊ स्थापना करें; साझा स्थापना करें;
14

38

मुझे pyenv का उपयोग करते समय उबंटू पर पायथन 3.5 के साथ एक ही समस्या थी ।

यदि आप pyenv का उपयोग करके अजगर को स्थापित कर रहे हैं , तो इसे सामान्य बिल्ड समस्याओं में से एक के रूप में सूचीबद्ध किया गया है । इसे हल करने के लिए, स्थापित अजगर संस्करण को हटा दें, आवश्यकताओं को स्थापित करें (इस विशेष मामले के लिए libsqlite3-dev), फिर अजगर संस्करण को पुनर्स्थापित करें।


22

यह वही है जो मैंने इसे काम करने के लिए प्राप्त किया।

मैं अजगर 2.7.5 स्थापित के साथ अजगर (जो पाइप का उपयोग कर रहा हूं) का उपयोग कर रहा हूं।

मैंने सबसे पहले जुबैर (ऊपर) से कहा और इस कमांड को चलाया:

sudo apt-get install libsqlite3-dev

फिर मैंने इस कमांड को चलाया:

pip install pysqlite

इससे डेटाबेस की समस्या ठीक हो गई और मुझे इसकी पुष्टि हो गई जब मैंने भाग लिया:

python manager.py syncdb

2
सेंटोस yum install sqlite-develमें पहली पंक्ति के बजाय 6.5 रन ।
एहसान88

3
यह पायथन 2 के लिए अच्छा है, लेकिन pysqliteअब sqlite3पायथन 3 में है, और आप ऐसा नहीं कर सकते pip -m install
क्लैब 4545

5
pysqlite is not supported on Python 3. When using Python 3, use the sqlite3 module from the standard library
स्टीफन

19
  1. sqlite-develपैकेज स्थापित करें :

    yum install sqlite-devel -y

  2. स्रोत से पुनरावर्ती अजगर:

    ./configure
    make
    make altinstall

10

मेरा _sqlite3.so /usr/lib/python2.5/lib-dynload/_sqlite3.so में है। अपने रास्तों से देखते हुए, आपके पास फ़ाइल /usr/local/lib/python2.5/lib-dynload/_sqlite3.so होनी चाहिए।

निम्नलिखित आज़माएँ:

find /usr/local -name _sqlite3.so

यदि फ़ाइल नहीं मिली है, तो आपके पायथन इंस्टॉलेशन में कुछ गड़बड़ हो सकती है। यदि यह है, तो सुनिश्चित करें कि यह जिस पथ पर स्थापित है वह पायथन पथ में है। पायथन शेल में,

import sys
print sys.path

मेरे मामले में, /usr/lib/python2.5/lib-dynload सूची में है, इसलिए यह /usr/lib/python2.5/lib-dynload/_sqlite3.so खोजने में सक्षम है।


2
बस जाँच की गई। पथ वहाँ है, लेकिन _sqlite3.so वास्तव में गायब है। किसी भी सुझाव है कि क्या मैं अलग से इसे स्थापित कर सकते हैं या अजगर को पुनः स्थापित करने के लिए बेहतर है? धन्यवाद!
अलेक्जेंडर वैन डीजेक

2
ऐसा लगता है कि आपने पाइथन को मैन्युअल रूप से बनाया और स्थापित किया है (क्या आपके ओएस में पैकेज बहुत पुराने हैं?), क्योंकि यह / usr / लोकल में है। सुनिश्चित करें कि sqlite dev पैकेज स्थापित है (वर्तमान डिस्ट्रोस में libsqlite3-dev, शायद आप में नहीं है), या पायथन मॉड्यूल का निर्माण करने में सक्षम नहीं होगा। यदि आप इसे स्थापित करते हैं, तो आपको पायथन के पुनर्निर्माण की आवश्यकता होगी ताकि इसमें वह मॉड्यूल शामिल हो।
ग्लेन मेनार्ड

हम्म, मैंने libsqlite3-dev स्थापित किया और अजगर का पुनर्निर्माण किया, लेकिन अब मुझे एक त्रुटि मिली: ImportError: ./_sqlite3.so: अपरिभाषित प्रतीक: PyUnicodeUn4_DecodeUTF8
अलेक्जेंडर वैन डीजेक

मैं उलझन में हूं। आपके डिस्ट्रो में पहले से ही Python 2.5 है ( संकुल .ebian.org/lenny/python2.5 )। आप इसे स्वयं क्यों बना रहे हैं?
ग्लेन मेनार्ड

1
लेकिन आप / usr / लोकल से पायथन चला रहे हैं। ऐसा लगता है कि आपने पायथन को दो बार स्थापित किया है - एक बार अपने आप से और एक बार apt-get के साथ, और एक / usr / लोकल में टूटा हुआ है।
ग्लेन मेनार्ड

8

मैंने हाल ही में अपने Ubuntu 11.04 डेस्कटॉप पर कुछ देव कार्यों के लिए अजगर 2.6.7 स्थापित करने की कोशिश की। इस धागे के समान समस्याओं के पार आया। मैंने इसे ठीक करने के लिए प्रयास किया:

  1. सही sqlite देव पथ को शामिल करने के लिए setup.py फ़ाइल को समायोजित करना। सेटअप थिंक को setup.py से

    def sqlite_incdir:
    sqlite_dirs_to_check = [
    os.path.join(sqlite_incdir, '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', 'lib'),
    os.path.join(sqlite_incdir, '..', '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', '..', 'lib'),
    '/usr/lib/x86_64-linux-gnu/'
    ]

    उस बिट के साथ जो मैंने जोड़ा जा रहा है '/ usr / lib / x86_64-linux-gnu /'।

  2. रन बनाने के बाद मुझे यह कहते हुए कोई चेतावनी नहीं मिली कि साइक्लाइट का समर्थन नहीं बनाया गया था (यानी, यह सही तरीके से बनाया गया है: P), लेकिन रनिंग के बाद make install, sqlite3 ने अभी भी उसी के साथ आयात नहीं किया " ImportError: No module named _sqlite3" whe running "import sqlite3"।

    तो, पुस्तकालय संकलित किया गया था, लेकिन सही स्थापना पथ पर नहीं ले जाया गया था, इसलिए मैंने .soफ़ाइल की प्रतिलिपि बनाई ( cp /usr/src/python/Python-2.6.7/build/lib.linux-x86_64-2.6/_sqlite3.so /usr/local/python-2.6.7/lib/python2.6/sqlite3/- ये मेरे बिल्ड पथ हैं, आपको संभवतः उन्हें अपने सेटअप में समायोजित करने की आवश्यकता होगी)।

देखा! SQLite3 समर्थन अब काम करता है।


धन्यवाद! लिनक्स मिंट डेबियन संस्करण, 2014 के लिए बस पहले भाग की आवश्यकता थी
spookylukey

धन्यवाद! मेरे लिए बिल्कुल वही समस्या। पुस्तकालय बनाया गया है, लेकिन सही निर्देशिका में कॉपी नहीं किया गया है।
छात्र 222

8

मैंने पाया कि बहुत से लोग इस समस्या से मिलते हैं क्योंकि मल्टी-वर्जन पायथन, मेरे अपने वीपीएस (प्रतिशत 7 x 64) पर, मैंने इसे इस तरह से हल किया:

  1. फ़ाइल "_sqlite3.so" ढूंढें

    find / -name _sqlite3.so

    बाहर: /usr/lib64/python2.7/lib-dynload/_sqlite3.so

  2. अजगर मानक पुस्तकालय की डायर खोजें जिसे आप उपयोग करना चाहते हैं,

    मेरे लिए /usr/local/lib/python3.6/lib-dynload

  3. फ़ाइल की प्रतिलिपि बनाएँ:

    cp   /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload

अंत में, सब कुछ ठीक हो जाएगा।


6
मेरे लिए काम नहीं किया। ImportError: dynamic module does not define module export function (PyInit__sqlite3)CentOS 7. पर मिला
xtluo

मेरे लिए भी यही है, क्या py3 का .soउपयोग py3.6.4 के लिए नहीं किया जा सकता है? @xtluo
MeadowMuffins

मुझे यह त्रुटि मिली -ImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
bgenchel

6

इसने मेरे लिए रेडहैट सेंटोस 6.5 में काम किया:

yum install sqlite-devel
pip install pysqlite

1
सिर्फ फी मुझे पाइप स्टेप करने की जरूरत नहीं थी
HashRocketSyntax

6

मेरे अजगर स्रोत से बनाया गया है, इसका कारण विकल्प गायब है जब निष्पादित अजगर संस्करण .4 3.7.4 को कॉन्फ़िगर करता है

./configure --enable-loadable-sqlite-extensions --enable-optimizations
make
make install

तय


3

मुझे FreeBSD 8.1 में समस्या है:

- No module named _sqlite3 -

यह पोर्ट ---------- स्टैंड द्वारा हल किया जाता है

/usr/ports/databases/py-sqlite3

इसके बाद कोई भी देख सकता है:

OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'

14
यह उत्तर बहुत कम समझ में आता है। क्या आप इसे संशोधित कर सकते हैं?
टिम पोस्ट

मेरे पास एक ही मुद्दा था, FreeBSD 8.2 w / Py2.7.2। Py-sqlite3 के लिए बस फिर से बना / स्थापित करके चल रहे द्वारा हल किया गया।
जस्टिन

यदि आपको यह पहली बार स्थापित लगता है, तो आपको स्थापना रद्द करनी होगी।
फ्रीबस

2

क्या अजगर- pysqlite2 पैकेज स्थापित किया गया है?

sudo apt-get install python-pysqlite2

1
साइक्लाइट को पायथन के साथ स्थापित किया गया है; आपको इसके लिए एक अलग पैकेज स्थापित करने की आवश्यकता नहीं है, और हम बता सकते हैं कि उसके पास पहले से ही पाइथन-आपूर्ति की गई लाइब्रेरी है। अजगर-साइक्लाइट स्थापित करना सबसे अच्छा होगा।
ग्लेन मेनार्ड

दिमागी ऐंठन। मेरा मतलब था अजगर-पाइसक्लाइट 2 पैकेज। मुझे इस पैकेज के बिना काम करने के लिए Django / sqlite नहीं मिल सका। मैंने अपना उत्तर अपडेट कर दिया है।
ब्रायन जूल

मेरे पास अजगर-पाइसक्लाइट 2 स्थापित है।
अलेक्जेंडर वैन डेजक

2

अपनी सेटिंग्स की जाँच कर फ़ाइल। क्या आपने डेटाबेस इंजन के लिए "sqlite3" के बजाय सिर्फ "sqlite" नहीं लिखा?


2

sqlite3पायथन के साथ जहाज। मुझे भी यही समस्या थी, मैंने बस python3.6इसे अनइंस्टॉल किया और फिर से स्थापित किया।

मौजूदा अजगर की स्थापना रद्द करें:

sudo apt-get remove --purge python3.6

Python3.6 स्थापित करें:

sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make altinstall

1

आप सेंटोस या रेडहैट में होना चाहिए और अपने आप को अजगर संकलित करें os यह अजगर का बग है जो आपके अजगर स्रोत कोड dir में ऐसा करता है और इसे नीचे करें

curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1

1

मुझे भी यही समस्या हुई, ऊपर वाले से मेरे लिए कुछ भी काम नहीं आया लेकिन अब मैंने इसे ठीक कर लिया

बस को हटाने python.pipऔर sqlite3और पुनर्स्थापना

  1. sudo apt-get remove python.pip
  2. sudo apt-get remove sqlite3

अब इसे फिर से स्थापित करें

  1. sudo apt-get install python.pip
  2. sudo apt-get install sqlite3

मेरे मामले में sqlite3फिर से स्थापित करते समय इसमें कुछ त्रुटि दिखाई दी तो मैंने टाइप किया

  1. sqlite3

टर्मिनल पर यह जाँचने के लिए कि उसे हटाया गया या नहीं और उसने इसे खोलना शुरू कर दिया

एक बार sqlite3फ़ायरफ़ॉक्स टर्मिनल स्थापित किया गया है और लिखें

  1. sqlite3
  2. database.db (एक डेटाबेस बनाने के लिए)

मुझे यकीन है कि यह निश्चित रूप से आपकी मदद करेगा


1

Windows OS के लिए समाधान खोजने वाले इस पृष्ठ पर आने वाले किसी भी व्यक्ति के लिए उत्तर देना:

यदि आपको पहले से स्थापित नहीं है तो आपको pysqlite3 या db-sqlite3 इंस्टॉल करना होगा। आप स्थापित करने के लिए निम्नलिखित का उपयोग कर सकते हैं।

  • पाइप स्थापित pysqlite3
  • पाइप स्थापित db-sqlite3

मेरे लिए यह मुद्दा sqlite3 की DLL फाइल के साथ था।

उपाय:

  1. मैंने sqlite साइट से DLL फ़ाइल ली । यह अजगर स्थापना के आपके संस्करण के आधार पर भिन्न हो सकता है।

  2. मैंने इसे env के DLL डायरेक्टरी में पेस्ट किया। मेरे लिए यह "C: \ Anaconda \ Lib \ DLLs" था, लेकिन आपके लिए जाँच करें। DLL फाइल करने से पहले और बाद में


मेरे पास सटीक त्रुटि थी। इससे किसी तरह मेरी समस्या हल हो गई। धन्यवाद!
उकजी

1

मैं निराश था कि यह मुद्दा आज भी मौजूद है। जैसा कि मैंने हाल ही में CentOS 8.1 पर vCD CLI स्थापित करने की कोशिश की है और जब इसे चलाने की कोशिश की गई तो उसी त्रुटि के साथ मेरा स्वागत किया गया। मेरे मामले में इसे हल करने का तरीका इस प्रकार है:

  • उचित उपसर्ग के साथ खरोंच से SQLite3 स्थापित करें
  • मेरे अजगर स्थापना को साफ करें
  • पायथन को पुन: स्थापित करने के लिए स्थापित करें चलाएँ

जैसा कि मैं vCD CLI और VMware कंटेनर सेवा एक्सटेंशन को स्थापित करने के तरीके के बारे में एक अलग ब्लॉगपोस्ट बनाने के लिए कर रहा हूं। मैंने इस मुद्दे को ठीक करने और इसे एक अलग ब्लॉग पोस्ट में डालने के लिए उपयोग किए गए चरणों को कैप्चर किया है:

http://www.virtualizationteam.com/cloud/running-vcd-cli-fail-with-the-following-error-modulenotfounderror-no-module-named-_sqlite3.html

मुझे आशा है कि यह उपयोगी है, जबकि ऊपर दिए गए सुझावों ने मुझे एक समाधान प्राप्त करने में मदद की थी, मुझे उनमें से कुछ को संयोजित करना था और उन्हें थोड़ा संशोधित करना था।


आपके द्वारा प्रदान की जा रही लिंक के साथ अपनी संबद्धता का खुलासा करने के लिए धन्यवाद! यह सराहनीय है।
रॉबर्ट कोलंबिया

-1

डाउनलोड sqlite3:

wget http://www.sqlite.org/2016/sqlite-autoconf-3150000.tar.gz

स्थापित करने के लिए इन चरणों का पालन करें:

$tar xvfz sqlite-autoconf-3071502.tar.gz
$cd sqlite-autoconf-3071502
$./configure --prefix=/usr/local
$make install

1
यह प्रश्न 2009 में पूछा गया था और डेबियन 5. के बारे में था। sqlite3 अब रिपॉज (व्हीजी के बाद से) में उपलब्ध है, इसलिए इसे मैन्युअल रूप से स्थापित करने की कोई आवश्यकता नहीं है। मुझे लगता है कि यह अधिकांश विकृतियों के लिए भी सच है।
Jérôme


-3

कॉपी करने की कोशिश करें _sqlite3.so ताकि पायथन इसे पा सके।

यह उतना ही सरल होना चाहिए:

cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/

मेरा विश्वास करो, यह कोशिश करो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.