2013-05-13 1 views
1

이 질문은 다른 프로그램에서 파이썬을 통합하는 것에 관한 것입니다. 파이썬과 링크하면 이전 2.x 버전의 경우 python27.lib 또는 그와 비슷한 (예 : python26.lib) 가져 오기 라이브러리가 있습니다. 분명히 파이썬 3.x는 폴더에 python3.libpython33.lib을 모두 발견하여 거기에서 규칙을 약간 변경했습니다.파이썬을 통합 할 때 얼마나 많은 버전이 일치해야합니까?

import libs의 구성원을 보면 2.6과 2.7 사이의 호환성이 없을 것입니다. 그러나 Python 2.7.3의 가져 오기 라이브러리가 예전 Python 2.7 DLL에서 작동 할 수 있다고 가정 할 수 있습니까? 2.7.2 또는 2.7.1? 파이썬을 내 응용 프로그램과 함께 배포하지 않고 이미 설정된 파이썬을 기반으로 옵션으로 파이썬 통합을 제공하려고합니다.

보너스 질문 : 파이썬 3의 이름 변경 및 python3.dll이 기능 수출 전달자를 포함 할 것 같다 내가 python3.lib에 연결하면 3.0로 시작하는 파이썬 3.x의 버전과 함께 작동 할 것이라고 가정 할 수 있다는 사실을 주어진?

답변

2

파이썬의 패치 레벨은 바이너리 호환입니다. 즉, 2.7.3으로 링크하면이 바이너리는 다른 2.7.x 릴리스에서도 작동합니다. 이것은 릴리스 간에는 작동하지 않습니다 (즉, 바이너리는 Python 2.6 또는 3.3에서 작동하지 않습니다).

python3.dll을 사용하면 모든 python 3.x 릴리스를 사용할 수 있지만 사용할 수있는 C API는 제한적입니다. 안정된 ABI 만 사용할 수 있습니다 (here).

+0

고마워요! 첫 단락의 출처도 있으십니까? – 0xC0000022L

+0

즉시. 그것은 CPython의 개발 프로세스의 부작용입니다 : 마이크로 릴리즈는 새로운 기능을 도입하지 않아야하며 ABI를 변경하는 것은 버그 수정 릴리즈에서 큰 문제가 아닙니다. bugfix 릴리즈의 목표는 python 설치를 업데이트하고 모든 것이 계속 작동하는지 확인하는 것입니다 (예기치 않은 버그는 릴리스에서 제외하고 코드는 수정 된 버그의 존재 여부에 의존합니다) –

+1

파이썬 버전 간 바이너리 호환성 확인 - http://upstream.rosalinux.ru/versions/python.html –

관련 문제