2017-02-06 5 views
1

, 그것은 아주 convinient이다. 지금은 스크립트 또는 사용자가 pip install mypackage 같은 명령을 통해 내 패키지를 설치 한 후 기능을 실행해야합니다. 난 그냥 종종 응용 프로그램이 종료하기 전에 기능을 실행 파이썬에서 사용 된 atexit.register(someFunction)처럼, register(funtionCalledAfterPackageInstalled) 같은 API를 찾을 수있는 생각했지만 실패했습니다. 그래서 나는 물어보고 싶다 : 그런 일을하는 선한 방법이 있는가?어떻게 스크립트 나 파이썬 setuptoos 통해 funciton을 실행합니다? 내 패키지를 배포 할 <a href="https://docs.python.org/2.7/distutils/introduction.html" rel="nofollow noreferrer">Distutils</a>를 사용

배경 : : 자주 업데이트되는 DLL을 내 패키지에서 참조하며이를 내 pakcage에 넣지 않으므로 업데이트를 신경 쓸 필요가 없습니다. 필자는 사용자가 패키지를 설치 한 후 함수 호출을 통해 자동으로 다운로드되도록하려고합니다. 그리고 환경이 WINDOWS이므로 Linux pakcage 관리 도구가 작동하지 않습니다.

+1

을()'당신'다른 파이썬 기능을 수행 할 수 setup.py'/방법이다. 그래서 여기서 파이썬 프로그램이나 시스템 콜을 실행할 수 있습니다 (예제로 서브 프로세스 사용). – Arount

+0

@Arount 와우, 좋아, 그게 내가 필요한거야. 고맙습니다. – lengxuehx

+0

그래서 나는 적절한 anwser를 만들 것입니다, 어쩌면 다른 것들을 도울 것입니다. – Arount

답변

1

당신의 setup.py 파일에 setup()을 호출 한 후 다른 파이썬 함수 또는 메서드를 호출 할 수 있습니다. 그래서 당신은 당신이 필요하거나 예에 의해 subprocess와 외부 명령을 실행할 것을 만드는 파이썬 기능을 실행할 수 있습니다.

그것은과 같이됩니다 :`설치를 호출 한 후

from distutil.core import setup 
import subprocess 

setup(... stuff ...) 

# Call external command  
subprocess.Popen('command here', ... attrs ...) 
# Or another Python function you wrote 
my_function()