2011-02-14 2 views
8

나는 setup_requires = [...]에서 보통의 방법으로 의존성을 선언 한 setup.py를 가진 Python 패키지를 가지고있다. 거기에 패키지 중 하나 인 scikits.timeseries가 이미 설치되어있을 것으로 예상되는 setup.py가 있습니다. 따라서 numpy를 먼저 설치해야합니다. 이 경우와 일반적으로 종속성 설치 순서를 제어 할 수 있습니까? 방법?setup.py 또는 pip 요구 사항 파일에서 패키지 종속성 설치 순서를 제어하는 ​​방법은 무엇입니까?

현재 setup.py가 의존성을 끌어내는 순서 (arg install_requires에 나열 됨)는 실질적으로 무작위로 보입니다. 또한, setup.py 설정 (...)에서 arg :

extras_require={'scikits.timeseries': ['numpy']} 

... 성공하지 못했습니다. 종속성 설치 순서는 영향을받지 않았습니다.

또한 pip 요구 사항 파일을 설정하려고했지만 pip 설치 순서가 요구 사항 파일의 라인 순서와 일치하지 않으므로 운이 없습니다.

또 다른 가능성은 setup.py (...) 호출 전에 numpy를 설치하기 위해 setup.py의 맨 위에 시스템 호출을하는 것이지만 더 좋은 방법이 있기를 바랍니다. 모든 도움을 미리 감사드립니다.

+2

을이 손에 넣는다 누구에게나 들어 문제. [this] (https://github.com/scikit-learn/scikit-learn/issues/2569)는 numpy가 종속성에 포함되지 않는 이유입니다. – inf

답변

5

scikits.timeseriesnumpy이 필요한 경우 종속성으로 선언해야합니다. 만약 그렇다면, pip이 당신을 위해 일을 처리 할 것입니다 (나는 꽤 확신합니다. setuptools도 그렇지만 오래 동안 사용하지 않았습니다). scikits.timeseries을 제어하는 ​​경우 종속성 선언을 수정해야합니다.

+0

그 말이 맞습니다. 고마워요. 나는 그 코드베이스를 제어하지 않지만 그것을 포크 할 것이다. :) – limist

+0

왜 scikit에 명시 적 의존성이 없는지에 대한 답변을 언급하는 것이 좋습니다. https://github.com/scikit-learn/scikit-learn/issues/2569 –

+1

@CharlieParker 그 토론은 존재하지 않았다. –

0

당신은 setup_requires 섹션에 NumPy와를 추가 할 수 있습니다

setup_requires=['numpy'], 
+0

나는 거기에 그것을 가지고 있지만 여전히 그것은 scaffy를 설치하기 전에 그것을 밖으로 괴물 같다 또는 그것을 설치하지 numpy 가져올 때 문제가 보인다. install_requires = [ 'numpy', 'namespaces', 'pdb', 'scikit-learn', 'scipy']' –

0

사용 setup_requires 매개 변수를 numpy 이전 scipy__builtins__.__NUMPY_SETUP__ = False 훅을 설치하는 예를 들어 NumPy와가 올바르게 설치 얻을 :

setup(
    name='test', 
    version='0.1', 
    setup_requires=['numpy'], 
    install_requires=['scipy'] 
) 

def run(self): 
    __builtins__.__NUMPY_SETUP__ = False 
    import numpy 
관련 문제