scikit 빌드
scikit-build는 CMake를 사용하는 CPython C/C++/Fortran/Cython 확장용 Python 빌드 시스템입니다.
scikit-build 패키지는 기본적으로 setuptools
Python 모듈과 CMake 사이를 연결하는 역할을 합니다.
scikit-build의 차세대 버전인 scikit-build-core가 현재 개발 중입니다. 이는 setuptools를 사용하지 않고 많은 새로운 기능을 제공하는 CMake용 간단하고 안정적인 빌드 백엔드를 제공합니다. Scikit-build-core는 또한 결국 scikit-build(클래식)의 백엔드가 될 setuptools 기반 확장 시스템을 구동할 수도 있습니다. 빌드 프로세스의 광범위한 사용자 정의가 필요하지 않은 경우 scikit-build 대신 scikit-build-core를 사용해 보는 것이 좋습니다.
시작하려면 이 예를 참조하세요. 더 많은 예시를 보려면 scikit-build-sample-projects를 참조하세요.
최신 릴리스
출판물
과학 출판물에서 scikit-build를 참조할 때 첫 번째 인용을 사용하세요.
- Jean-Christophe Fillion-Robin, Matt McCormick, Omar Padron, Max Smolens, Michael Grauer, Michael Sarahan. (2018년 7월 13일). jcfr/scipy_2018_scikit-build_talk: SciPy 2018 토크 | scikit-build: CPython C/C++/Fortran/Cython Extensions용 빌드 시스템 생성기입니다. 제노도. https://doi.org/10.5281/zenodo.2565368
- Schreiner, Henry, Rickerby, Joe, Grosse-Kunstleve, Ralf, Jakob, Wenzel, Darbois, Matthieu, Gokaslan, Aaron, Fillion-Robin, Jean-Christophe, & McCormick, Matt. (2022년 8월 1일). pybind11, scikit-build 및 cibuildwheel을 사용하여 바이너리 확장 빌드. https://doi.org/10.25080/majora-212e5952-033
역사
PyCMake는 플랫폼 전반에 걸쳐 C++ 및 Fortran 기반 Python 확장을 구축하는 일반적인 어려움에 대한 대응으로 SciPy 2014에서 만들어졌습니다. 2016년에 "scikit-build"로 이름이 바뀌었습니다. Scikit-build-core는 2022년에 시작되었습니다.
알려진 문제
이러한 문제는 향후 릴리스에서 해결될 가능성이 높으며 이미 scikit-build-core에서 해결되었습니다.
- 편집 가능한 설치는 최신 버전의 Setuptools에서 작동하지 않습니다(이전 버전에서도 문제가 있었습니다).
- scikit-build 구성은 현재
setup()
에 _반드시_ 지정되어야 합니다. - 캐시 디렉터리(
_skbuild
)는 경우에 따라 빌드 간에 삭제해야 할 수도 있습니다(예: 다른 Python 인터프리터로 다시 빌드). - AIX에는 AIX Toolbox for Open Source Software의 IBM 제공 CMake 3.22.0보다 최신 버전의 CMake가 필요합니다. 현재 AIX의 소스에서 CMake를 빌드하는 것이 좋습니다.
우리는 또한 scikit-build를 개선하기 위해 노력하고 있으므로 앞으로 몇 가지 변경 사항과 지원 중단이 있을 예정입니다.
- 더 이상 사용되지 않는 모든 setuptools/distutils 기능은
test
명령 easy_install
등과 같이 scikit-build에서도 더 이상 사용되지 않습니다. - 이전 버전의 CMake(<3.15)는 권장되지 않습니다. 향후 버전에서는 이전 CMake에 대한 지원이 제거됩니다(적절한 CMake를 사용할 수 있도록 더 나은 메커니즘 제공과 함께).
이러한 기능이 필요한 경우 필요한 내용과 이유를 설명하는 문제를 열거나 찾아보세요.
여러 가지 잡다한
- 무료 소프트웨어: MIT 라이센스
- 문서: http://scikit-build.readthedocs.org
- 소스 코드: https://github.com/scikit-build/scikit-build
- 토론: https://github.com/orgs/scikit-build/discussions
- 사이킷-빌드-코어: https://github.com/scikit-build/scikit-build-core
이 작업에 대한 지원은 NSF 보조금 OAC-2209877에서 제공되었습니다.