2009-09-25 5 views
1

저는 파이썬과 sqlite 사이의 인터페이스를 갖고 싶습니다. 둘 다 기계에 설치됩니다. Python (2.4.3)의 옛 버전이 있습니다. 따라서 pysqlite는 기본적으로 포함되지 않았습니다. 첫째, pysqlite를 설치하여이 문제를 해결하려고 시도했지만이 방향으로 성공하지 못했습니다. 이 문제를 해결하기위한 두 번째 시도는 새로운 버전의 Python을 설치하는 것이 었습니다. 컴퓨터에 대한 루트 권한이 없습니다. 그래서, 나는 그것을 로컬에 설치했다. 파이썬의 새로운 버전은 (2.6.2)입니다. 내가 아는 한이 버전은 기본적으로 pysqlite를 포함해야한다 (그리고 이전과 같이 "pysqlite2"가 아닌 "sqlite3"라고 불린다). 내가 입력하면파이썬에서 pysqlite를 볼 수없는 이유는 무엇입니까?

그러나 :

from sqlite3 import * 

를 내가 얻을 : 그것은 언급 할 수있다

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/verrtex/opt/lib/python2.6/sqlite3/__init__.py", line 24, in <module> 
    from dbapi2 import * 
    File "/home/verrtex/opt/lib/python2.6/sqlite3/dbapi2.py", line 27, in <module> 
    from _sqlite3 import * 
ImportError: No module named _sqlite3 

, 내가로부터 "를 입력하면 위의 오류 메시지가 내가 얻을 수있는 것과 다르다는 것을 blablabla 가져 오기 * ":

Traceback (most recent call last):
File "", line 1, in ImportError: No module named blablabla

그래서 파이썬은 pysqlite와 관련된 것을 볼 수 있지만 여전히 문제가 있습니다. 그 문제로 아무도 나를 도와 줄 수 있습니까?

P. CentOS 5.3 (최종)을 사용합니다.

+0

어떤 배포판을 사용하고 있습니까? – voyager

+0

CentOS 5.3 (최종)을 릴리스하십시오. – Verrtex

답변

1

, _sqlite3.pydC:\Python26\DLLs에 있습니다. * nix에있는 경로는 /usr/lib/python2.6/lib-dynload/_sqlite3.so과 유사해야합니다. 공유 라이브러리가 누락되었거나 PYTHONPATH이 잘못 설정되었을 가능성이 있습니다.

수퍼 유저로 설치하지 않았다고 말했기 때문에 아마도 잘못된 경로 일 것입니다. 수동 파이썬은

import sys 
sys.path.append("/path/to/my/libs") 

를 수행하여 _sqlite3.so에 대한 경로를 검색 할 수 있지만 선호하는 방법은 아마 당신의 .bashrc 또는 기타 로그인 파일에 PYTHONPATH을 변경하는 것입니다. 당신은 "slite3.py"가

+0

나는 /home/verrtex/opt/lib/python2.6/sqlite3 디렉토리를 가지고있다. 이 디렉토리에 다음 파일이 있습니다. dbapi2.py dbapi2.pyc dbapi2.pyo dump.py dump.pyc dump.pyo __init__.py __init __. pyc __init __. pyo – Verrtex

+0

.bashrc 및 .bash_profile에서 PYTHONPATH가 변경되었습니다. 그리고 나는이 파일들을 제공한다. 도움이되지 않습니다. – Verrtex

+0

그건 그렇고, 어떻게 pysqlite 라이브러리를 포함하는 디렉토리를 찾을 수 있습니까? 어떤 파일을 검색해야합니까? _sqlite3.so? – Verrtex

1

패키지, sqlite3/__init__.py에 (실제로는 그에 상응하는, 그래서 import sqlite3 자체 괜찮지 만에 해당 모듈은 import _sqlite3에 시도를 켜고 실패, 그래서 _sqlite3.so을 찾는 아니에요. 그것은에 있어야합니다 python2.6/lib-dynload 당신의 로컬 파이썬 루트 아래에, 그리고 ld는 그 디렉토리에서 동적 라이브러리를 읽어 들일 수있는 권한이 있다는 지시를 받아야합니다. (예를 들어 .bashrc에 적절한 환경 변수를 설정하는 것이 일반적입니다.) lib-dynload 디렉토리가 있습니까? 쉘 프롬프트에서 env|grep LD 문자열을 포함하고있는 환경 변수는 무엇입니까?

+0

나는 /home/verrtex/opt/lib/python2.6/lib-dynload를 가지고 있지만 * sql * 파일은 없습니다. "env | grep LD"는 "OLDPWD =/home/verrtex/opt/lib/python2.6"이라고 말합니다. – Verrtex

+0

저의 /home/verrtex/opt/lib/python2.6/lib-dynload 디렉토리에 저것을 말하고 싶었습니다. substring sql을 포함하는 파일이 없습니다. – Verrtex