2012-02-25 9 views
1

구체적으로 말하면 다음과 같습니다.zc.buildout에서 egg A를 설치 한 다음 계란 A를 올바르게 설치하려면 egg B를 설치하려면 어떻게해야합니까?

나는 pymssql이 필요한 응용 프로그램을 설치하기 위해 zc.buildout을 사용하고 있습니다. Pymssql은 제대로 설치하려면 Cython이 필요합니다. 그러나, 나는 내 실행 환경을 수정하지 싶습니다, 그래서 나는 같은 것을 할 싶습니다 Pymssql를 설치 buildout

    1. 이 사이 썬
    2. 로드 사이 썬를 설치합니다.

    Buildout은 이미 이것을 수행했지만 setup.cfg를 점검하여 필요한 경우 명시 적으로 명시된 것이 모두 설치되어 있는지 확인하는 것처럼 보입니다. 현재 내 빌드 아웃은 다음과 같습니다.

    [buildout] 
        parts = required-eggs 
        ... 
    
    [required-eggs] 
        eggs = Cython 
         pymssql 
    

    Cython이 잘 설치됩니다. 나는 사이 썬은 달걀로 설치하고 있다고 생각, 따라서

    return self.build_and_install(setup_script, setup_base) 
        File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1101, in build_and_install 
    self.run_setup(setup_script, setup_base, args) 
        File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1090, in run_setup 
    run_setup(setup_script, args) 
        File "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", line 29, in run_setup 
    lambda: execfile(
        File "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", line 70, in run 
    return func() 
        File "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", line 31, in <lambda> 
    {'__file__':setup_script, '__name__':'__main__'} 
        File "setup.py", line 41, in <module> 
    ImportError: No module named Cython.Distutils 
    

    ,하지만 buildout를 실행하는 파이썬 프로세스에로드되지 않습니다 불행히도 pymssql하지 않습니다. 거기 buildout에 내가 할 수 있도록 몇 가지 구성인가요?

  • 답변

    2

    pymssql 패키지 alreade는 달걀을 setup_requires 종속 항목으로 선언하지만이 패키지를 설치할 때는 distutils 시간을주지 않습니다. 단순히 setup_requires에 그들을 나열하지만 모듈 범위 (pymssql)에서 가져 오기를 시도하는 것만으로는 충분하지 않습니다.

    setup_requires 행이 구문 분석되고 거기에 나열된 종속성을 사용할 수있을 때까지 Cython 종속성을 가져 오지 않으려면 setup.py 모듈을 재구성해야합니다. 기본적으로 자신의 build_cmd 클래스를 정의해야합니다.이 클래스는 인스턴스화 될 때 Cython 종속성을 가져오고 그 시간에 해당 클래스를 래핑합니다.

    그것은 당신이 당신의 조리법을 실행하는 것에 buildout 설치 Cythonpymssql 의존성을 설치할 수 있습니다 종속성으로 Cython을 사용하는 사용자 지정 buildout 조리법을 만들 수 있다고 할 수 있지만,이 상처에 석고입니다 pymssql해야 정말로 거래.

    +0

    해답을 제공해 주셔서 감사합니다. 실제로 무슨 일이 벌어지고 있는지 더 잘 이해할 수있게 도와줍니다! 나는 미리 컴파일 된 pymssql을 포함하고 그 문제를 다룰 것이라고 생각한다. – DrakeAnderson