2011-08-25 5 views
1

는 기능 설정(), 나는 다음 코드로 테스트를 호출 이외의 파이썬 코드의 모든 종류를 포함 할 수 있습니다 setup.py :setup.py, 설정() 플러스 다른 물건

from setuptools import setup 

setup(name='MyPackage', 
     packages=['mypackage']) 

print "After setup()" 

인쇄 문이 정상적으로 실행되었습니다. 명령 (python setup.py install)이 나를 의심스럽게 만들었 기 때문에 이것을 테스트했습니다. D. 어쨌든 ... 내 모든 설치 요구를 처리하는 임의의 스크립트로 setup.py을 두려움없이 대우해야합니까?

배경은 다음과 같습니다. 독립형 프로그램으로 작동하는 Python 패키지를 작성 중이므로 가져올 수 없습니다. Disutils에서 시스템 경로에 스크립트를 복사하고, 여분의 데이터 파일을 복사하고, 디렉토리를 만드는 것과 같은 설치 세부 사항을 처리하는 데 필요한 거의 모든 것을 발견했습니다. 그러나 disutils의 범위에서 벗어나는 절차는 여전히 있습니다. 시스템 호출.

내가 필요한 여분의 코드를 넣어야합니까? setup.py?

모든 입력 또는 추가 조언을 부탁드립니다.

고맙습니다.

+0

수행해야 할 추가 절차는 무엇입니까? –

+0

기본적으로 특정 응용 프로그램이 설치되어 있는지 확인하기위한 시스템 호출이 있습니다. – romeroqj

답변

1

이 최근 블로그 게시물은 대부분의 질문에 답해야한다 : 파이썬 세계에서 포장에 관한

http://tarekziade.wordpress.com/2011/08/19/5-tips-for-packaging-your-python-projects/

업무와 진행중인 많은,하지만 아직 사용할 수 없습니다를.

+0

팁 # 2가 정말 도움이되었습니다. 이것은 파이썬 모듈로 의도 된 것이 아니므로 disutils를 전혀 삭제하지 않고 모든 일괄 처리를위한 설치 스크립트를 작성하는 것을 고려하고 있습니다. 그것에 대한 당신의 생각은 무엇입니까? – romeroqj

+1

pypi.python.org에서 패키지를 배포하지 않을 경우, 적합한 방법을 사용하고 setuptools, distutils 등을 기각하십시오. –

0

setup() 실행 중 오류가 발생하면 프로그램이 중지되고 더 이상 코드가 실행되지 않습니다. 그러나 여전히 일부 추가 코드가 실행되기를 원할 수 있습니다. 이 경우 다음을 사용하십시오.

from setuptools import setup 

try: 
    setup(name='MyPackage', 
      packages=['mypackage']) 

finally: 
    print "After setup()"