2014-10-25 3 views
2

"conda build fibtestpackage"명령을 사용하여 패키지를 빌드하려고합니다.Conda 빌드를 사용하는 Cython Python 프로그램

파이썬 setup.py build_ext --inplace

빌드가 성공적으로 종료에도 불구하고

, 출력 :

사이 썬를 사용하여 구축 된 "fibtestpackage는"따라서 보통 .sh 파일에서 내가 명령을 로 예상된다


가져 오기 패키지 ... fibtestpackage-1.0.0 100 % | ######################### ####### | 시간 : 0:00:00 3.03 MB/s

패키지 추출 중 ... [전체] | ################# ################# | 100 %

연결 패키지 ... [COMPLETE] | ################################## ########## | 100 %


내가 YAML 파일에있는 한 가지 테스트가 실패합니다. 내가 가진 유일한 테스트는 다음과 같습니다 따라서


test: 
    # Python imports 
    imports: 
     - fibtestpackage 
     #- numpy 
     #- samplers 

, 그 가져 오기 오류,

ImportError를 : 없음 모듈이 존재하는 이유에 대한 나의 첫번째 추측 fibtestpackage

이름없는 importerror는 빌드 (및 라이브러리의 다른 파일)에 의해 생성 된 .SO, .C 및 .PYX 파일이 anaconda/lib/python2.7/site-packages/폴더에 저장되지 않기 때문입니다. 모듈들 있습니다. 쉘 파일에서 이것을 지정해야합니까, 아니면 "python setup.py build_ext --inplace"명령으로 처리해야합니까?

내 두 번째 추측은 유통 (업데이트 후) CONDA의 두 가지 버전이 있다는 것입니다

1) 파이썬 2.7.8 | 아나콘다 2.1.0 (64 비트) | (기본값, Aug 21 2014, 18:22:21)

2) Python 2.7.8 | Continuum Analytics, Inc. | (기본, 2014 년 8 월 21 일, 18:22:21)

이 문제의 원인 일 수 있습니까? 아마도 빌드 환경이 잘못된 라이브러리에 라이브러리를 설치하고 있습니까?

도움을 주셔서 감사합니다.

+0

약간의 조사가 끝난 후, 나는 ~/anaconda/lib/python2.7/site-packages/폴더에 빌드에 의해 생성 된 fibstestpackage.so 파일을 (cp 명령을 사용하여) 이동했는지 .sh 파일에서 발견했습니다. 그것은 작동하는 것 같습니다. 이게 최선의 해결책인가요 ??? –

답변

2

Conda 빌드는 모든 것을 설치해야하는 _build (일반적으로 ~/anaconda/envs/_build에 있음)이라는 빌드 조건을 만듭니다. Python의 경우 일반적으로 python setup.py install을 수행하면 충분합니다. python_build 환경에 설치된 것이므로 meta.yaml에서 종속성을 빌드하고 거기에 설치합니다.

빌드가 끝날 때, conda build는 빌드 환경의 모든 새 파일을 래핑하고 그 중 하나에서 conda 패키지를 만듭니다. 테스트 단계가있는 경우 _build 환경을 삭제하고 _test이라는 테스트 환경을 만들고 거기에 패키지를 설치하고 실행합니다.

이 문제를 디버깅하려면 ~/anaconda/envs/_test에서 Python을 실행 해보십시오.

경우에 따라 python setup.py build_ext --inplace은 실제로 파일을 설치하지 않고 단지 파일을 빌드 할 가능성이 높습니다. 빌드가 끝날 때 파일에 얼마나 많은 파일이 있는지 확인하십시오. 0이 있으면 문제가됩니다.