[python] _sqlite3이라는 모듈이 없습니다.

데비안 5 를 실행하는 VPS 에서 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
>>>

웹에서 읽을 때 Python 2.5에는 필요한 모든 SQLite 래퍼가 포함되어 있어야합니다 . 파이썬을 다시 설치해야합니까, 아니면이 모듈을 시작하고 실행할 수있는 다른 방법이 있습니까?



답변

makefile에 적절한 .so파일이 포함되지 않은 것 같습니다 . 아래 단계에 따라이 문제를 해결할 수 있습니다.

  1. 설치 sqlite-devel(또는 libsqlite3-dev일부 데비안 기반 시스템)
  2. 다음을 사용하여 Python 재구성 및 재 컴파일 ./configure --enable-loadable-sqlite-extensions && make && sudo make install

노트

sudo make install부분은 그 파이썬 버전을 시스템 전체 표준으로 설정하여 예기치 않은 결과를 초래할 수 있습니다. 워크 스테이션에서이 명령을 실행하는 경우 기존 파이썬 과 함께 설치해야 할 것입니다 sudo make altinstall.


답변

나는 같은 문제 ( python2.5우분투 루시드의 소스에서 빌드 )가 있었고이 import sqlite3같은 예외를 던졌습니다. libsqlite3-dev패키지 관리자에서 설치 하고 python2.5를 다시 컴파일 한 다음 가져 오기가 작동했습니다.


답변

pyenv 사용하는 동안 Ubuntu에서 Python 3.5와 동일한 문제가 발생 했습니다 .

pyenv를 사용하여 파이썬을 설치하는 경우 일반적인 빌드 문제 중 하나로 나열됩니다 . 이 문제를 해결하려면 설치된 python 버전을 제거하고 요구 사항 (이 특별한 경우 libsqlite3-dev)을 설치 한 다음 python 버전을 다시 설치하십시오.


답변

이것이 내가 작동하도록하는 일입니다.

python 2.7.5가 설치된 pythonbrew (pip를 사용 중)를 사용하고 있습니다.

먼저 Zubair (위)가 말한 것을 수행하고 다음 명령을 실행했습니다.

sudo apt-get install libsqlite3-dev

그런 다음이 명령을 실행했습니다.

pip install pysqlite

이것은 데이터베이스 문제를 해결했고 내가 실행할 때 이것을 확인했습니다.

python manager.py syncdb


답변

  1. sqlite-devel패키지를 설치하십시오 :

    yum install sqlite-devel -y

  2. 소스에서 파이썬을 다시 컴파일하십시오.

    ./configure
    make
    make altinstall

답변

내 _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

파일을 찾지 못하면 Python 설치에 문제가있을 수 있습니다. 그렇다면 설치된 경로가 Python 경로에 있는지 확인하십시오. 파이썬 셸에서

import sys
print sys.path

필자의 경우 /usr/lib/python2.5/lib-dynload가 목록에 있으므로 /usr/lib/python2.5/lib-dynload/_sqlite3.so를 찾을 수 있습니다.


답변

최근에 일부 개발 작업을 위해 Ubuntu 11.04 데스크톱에 python 2.6.7을 설치하려고했습니다. 이 스레드와 비슷한 문제가 발생했습니다. 나는 그것을 고치기 위해 mamaged했다.

  1. 올바른 sqlite dev 경로를 포함하도록 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. make를 실행 한 후 sqlite 지원이 빌드되지 않았다는 경고가 표시되지 않았습니다 (즉, 올바르게 빌드되었습니다 : P). 그러나 실행 후에 make installsqlite3은 여전히 ​​동일한 ” 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 지원이 작동합니다.