2013-01-27 8 views
6

제목은 자기 설명 형입니다. 추가 빌드 단계를 수행하려면 setup.py build 명령의 하위 클래스를 만들어야합니다. 그러나 어떤 build 명령 클래스에서 상속 찾을 찾을 수 없습니다. 나는 노력했습니다 심지어빌드 명령을 서브 클래 싱하는 방법은 무엇입니까?

class BuildCommandProxy(setuptools.command.build): 
    pass 

class BuildCommandProxy(distutils.command.build): 
    pass 

과 :

class BuildCommandProxy(setuptools.distutils.command.build): 
    pass 

어떤 성공하지.

업데이트 : thissetuptools을 구현하는 방법을 찾고 있습니다.

UPDATE2 :

cmdclass={ 
    "build": CustomCommand, 
} 

를 한 후 원본을 호출 :

class CustomCommand(setuptools.Command): 
    # ... 

내가 구현하고자하는 것은이 같은 cmdclass에이 명령을 전달하는 : 나는 일부 사용자 지정 명령 구현을 맞춤 단계를 수행 한 후 buildCustomCommand.run에 입력하십시오.

+0

'cmdclass'를'setup()'에 넘기고 있습니까? 'setup.py'의 관련 부분을 게시하십시오. – ecatmur

답변

8

Setuptools는 distutilsbuild 명령 자체를 덮어 쓰지 않습니다. build_pybuild_ext 부속 명령 만

그래서, 자신의 서브 클래스를 만들 수는 build 클래스 (Command의 서브 클래스)가 포함 distutils.command.build모듈에서 가져와야 : 완성도를 들어

import distutils.command.build 

class BuildCommandProxy(distutils.command.build.build): 
    pass 
1

을, 어떻게 여기의 전체 예입니다

import distutils.command.build 

# Override build command 
class BuildCommand(distutils.command.build.build): 

    def run(self): 
     # Run the original build command 
     distutils.command.build.build.run(self) 
     # Custom build stuff goes here 

# Replace the build command with ours 
setup(..., 
     cmdclass={"build": BuildCommand}) 
관련 문제