Setuptools는 내 프로그램의 사용량이 매우 제한되어있어 과도한 무기이므로 내 자생 대안을 제시합니다.
전제 조건을 모두 포함하는 "타사"디렉토리를 번들로 제공하고 site.addsitedir을 사용하여 전 세계적으로 설치할 필요가 없습니다.
# program startup code
import os
import sys
import site
path = os.path.abspath(os.path.dirname(__file__))
ver = 'python%d.%d' % sys.version_info[:2]
thirdparty = os.path.join(path, 'third-party', 'lib', ver, 'site-packages')
site.addsitedir(thirdparty)
대부분의 필자는 setup.py 설치 프로그램을 사용합니다. 번들로 제공되는 각 모듈에는 자체 "설치"프로세스가 있으므로 사용자 정의 된 항목 (예 : ./configure)이 자동으로 실행될 수 있습니다. 내 설치 스크립트는이 makefile을 설치 프로세스의 일부로 실행합니다.
# sample third-party/Makefile
PYTHON_VER = `python -c "import sys; \
print 'python%d.%d' % sys.version_info[:2]"`
PYTHON_PATH = lib/$(PYTHON_VER)/site-packages
MODS = egenix-mx-base-3.0.0 # etc
.PHONY: all init clean realclean $(MODS)
all: $(MODS)
$(MODS): init
init:
mkdir -p bin
mkdir -p $(PYTHON_PATH)
clean:
rm -rf $(MODS)
realclean: clean
rm -rf bin
rm -rf lib
egenix-mx-base-3.0.0:
tar xzf [email protected]
cd [email protected] && python setup.py install --prefix=..
rm -rf [email protected]
그건 내 경험이 아니야. 물론 제 3 자 라이브러리를 잘못 설정하거나 파이썬을 잘못 설치할 수는 있지만 일반적으로 표준 파이썬 프로그램에는 문제가 없었습니다. 새로운 기능을 사용할 때 이전 버전으로 이동하는 것을 제외하고 :). 아마 당신은 자바 (tm)를 생각하고 있었습니까? –
@ A.L.Flanagan : 사실 자바를 싫어하기 때문에 소프트웨어 배포에 대해 꽤 강건하다는 것을 알았습니다. – Marcin