문제

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 환경 변수.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top