나는 판다의 cython extensions의 종속 구조를 setup.py에서 이해하려고합니다.distutils 확장 인수 - 대 vs 의존 소스 포함?
distutils.extension.Extension
인수 sources
, depends
을 가지고 있으며, include_dirs
, 나는 이들의 차이를 알아낼 수 없습니다. 특히, 팬더 케이스에 빌드를 깨지 않고 depends
(또는 pxdfiles
)의 항목을 삭제할 수있는 장소가 많이 있습니다.
이 세 가지 인수의 구분은 무엇입니까? @phd에서 대답 다음
업데이트 : 생각을 주셔서 감사합니다 더 나은 내 혼란의 원인을 통신을 시도합니다. setup.py 파일이 위의 링크 된 팬더에서
의 pandas._libs.tslib
확장은 인수/kwargs로와 distutils.extension.Extension
에 전달됩니다
ext = Extension('pandas._libs.tslib',
sources=['pandas/_libs/tslib.pyx',
'pandas/_libs/src/util.pxd',
'pandas/_libs/src/datetime/np_datetime.c',
'pandas/_libs/src/datetime/np_datetime_strings.c',
'pandas/_libs/src/period_helper.c'],
depends=['pandas/_libs/src/datetime/np_datetime.h',
'pandas/_libs/src/datetime/np_datetime_strings.h',
'pandas/_libs/src/period_helper.h',
'pandas/_libs/src/datetime.pxd'],
include_dirs=['pandas/_libs/src/klib', 'pandas/_libs/src'])
가지고 예를 들어, sources
항목의 util.pxd
include_dirs
항목에 pandas/_libs/src
이 있는지 여부와 중복되지 않습니까? tslib
및 cdef extern from "datetime/np_datetime_strings.h"
양식의 "가져 오기"가있는 datetime.pxd
에서 직접 가져옵니다. sources
에 "* .c"파일이 있거나 depends
에 "* .h"파일이 있거나 또는 ...
순열을 시도했습니다. 이러한 종속성의 하위 집합을 제거하는 경우 빌드를 중단하는 패턴이 많지 않습니다.