2009-10-06 1 views
0

나는 Python과 C 코드를 모두 포함하는 오픈 소스 프로젝트를 가지고있다. 우분투/debian 패키지를 만들 계획이기 때문에 저에게 distutils를 사용하게 될지 궁금합니다. C 코드는 파이썬 확장으로 사용할 수있는 것이 아닙니다. C 및 Python 프로그램은 localhost를 통해 TCP/IP와 통신합니다.C/Python 프로젝트를 패키징 할 때 distutils를 사용하는 이유

결론적으로 패키징을 배우는 동안 distutils 특정 파일을 사용하면 Python 확장으로 C 코드를 사용할 수 없기 때문에 혼란 스럽습니다. 아니면 포장 개념을 더 잘 이해할 수 있도록 프로젝트를 구분하기 위해 C와 Python 기능을 나누어야합니까?

답변

1

distutils는 최종 사용자 프로그램을 설치하는 데 사용할 수 있지만 소스 패키지를 만들고 올바른 위치에 설치할 수 있으므로 Python 라이브러리에 사용할 때 가장 유용합니다. 그것을 위해 나는 그것이 더 많거나 적게 요구된다고 말할 것이다.

최종 사용자 Python 프로그램의 경우 Python site-packages 디렉토리에 코드를 설치할 필요가 없으므로 make 또는 무엇이든 익숙하고 익숙한 것을 사용할 수 있습니다. PyPI에 코드를 삽입하면 다른 Python 코드에서 액세스 할 필요가 없습니다.

나는 distutils가 다른 도구에 비해 최종 사용자 프로그램을 설치하는 데 다소 복잡하지는 않을 것이라고 생각합니다. Cartman이 말했듯이 그러한 설치/패키징 도구는 모두 복잡합니다.

+1

* (포장에 관련된 사람들로부터 매우 화가 난 답변을 얻을 수 있습니다. 포장은 연금술과 같습니다 : 어두운 편집증을 쓴 사람에 의해 수행 된 암실 예술 포장 기술 철학 사이에는 많은 혼란이있다. 하나의 공구에 적어도 하나가있다.) * –

1

통합 python setup.py install 명령을 사용했기 때문에? distutils, 또는 setuptools? 어쨌든, 그 중 하나를 사용하십시오.

개발을 위해, 그러한 의존성을 어디에서 찾을 지 신경 쓸 필요가 없기 때문에 또한 유용합니다. 표준 Python/기본 시스템 라이브러리 항목 인 경우 setup.py을 사용해야합니다. setup.py을 사용하면 거대한 Makefile을 만들 때 더 이상 ./configure 물건이나 못생긴 autotools가 필요하지 않습니다. 그냥 작동합니다. (tm)