데비안 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
파일이 포함되지 않은 것 같습니다 . 아래 단계에 따라이 문제를 해결할 수 있습니다.
- 설치
sqlite-devel
(또는libsqlite3-dev
일부 데비안 기반 시스템) - 다음을 사용하여 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
답변
-
sqlite-devel
패키지를 설치하십시오 :yum install sqlite-devel -y
-
소스에서 파이썬을 다시 컴파일하십시오.
./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했다.
-
올바른 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 /’입니다.
-
make를 실행 한 후 sqlite 지원이 빌드되지 않았다는 경고가 표시되지 않았습니다 (즉, 올바르게 빌드되었습니다 : 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 지원이 작동합니다.