문제
Python 모듈이 Python 설치와 함께 제공된 버전이 아닌 내 응용 프로그램 디렉토리에 Python 모듈을로드하는 방법이 있습니까? Python 설치를 변경하지 않고 설치자를 만들었고 조심해야합니다. t Python 모듈을 덮어 쓰고 DLL 버전을 Globaly로 변경하여 사람들을위한 다른 앱을 깨뜨립니다 ...)?
특히 Python은 Python (오래되고 FTS3 모듈이없는 것으로 보이지 않는)이 아닌 버전이 아닌 SQLite3.dll 버전을 사용하기를 원합니다.
해결책 2
파이썬은 Python 및 OS 경로가 설정된 내용에 관계없이 PYD 파일과 동일한 디렉토리에 DLL을 항상로드합니다.
그래서 나는 python/v2.5/dlls에서 _sqlite3.pyd를 새로운 sqlite3.dll이있는 apps 디렉토리로 복사해야했기 때문에 python과 함께 제공되는 것보다 새로운 dll을로드하게 만들었습니다 (pyd 파일이 보이기 때문에 Actaul dlls 자체는 그렇지 않더라도 Pythonpath를 따릅니다).
다른 팁
Python Module DLL에 대해 이야기하고 있다면 간단히 수정합니다. sys.path
괜찮을거야. 그러나 DLL에 대해 이야기하고 있다면 연결되어 있습니다 그 DLL에 대한; 즉 a libfoo.dll
a foo.pyd
그에 따라 경로 환경 변수를 수정해야합니다. 나는 썼다 얼마 전에 피그 빅을 위해이 작업을 수행합니다, 그러나 귀하의 경우에는 다음과 같이 간단해야한다고 생각합니다.
import os
os.environ['PATH'] = 'my-app-dir' + os.pathsep + os.environ['PATH']
삽입됩니다 my-app-dir
Windows Path의 헤드에서 DLL의 하중 주문도 제어한다고 생각합니다.
흥미로운 것을 가져 오기 전에 문제의 DLL을로드하기 전에이 작업을 수행해야합니다.
그러나 SQLITE3은 Python으로 분포되기 때문에 약간의 특별한 경우 일 수 있습니다. 이것을 빨리 테스트하는 것은 분명히 까다 롭기 때문에 확인하지 않았습니다. sqlite3.dll
구체적으로.
sqlite 버전이 sys.path에있는 경우 ~ 전에 시스템 버전은 사용합니다. 따라서 현재 디렉토리에 넣거나 변경할 수 있습니다. PYTHONPATH
환경 변수.