2012-06-29 3 views
1

런타임시 확장 모듈을 만드는 thanos를 사용하려고합니다. Thanos는 런타임에 생성 된 확장을 가져올 수 없으므로 끊임없이 실패합니다.존재하는 파이썬 확장 모듈을로드 할 수 없습니다.

나는 왜 그런지에 대해 당혹 스럽다.

는 런타임 (컴파일 후) "cutils_ext"디렉토리는 cutils_ext.so

import cutils_ext 작품을 포함,하지만 난 mport cutils_ext.cutils_ext 내가 직접 꼬마 도깨비와 함께 테스트 한

ImportError: No module named cutils_ext 

실패합니다. cutils가 가져온 cutils_ext 패키지라고 가정 해보십시오. 내가 할 경우 :

ImportError: No module named cutils_ext 

나는 완전히 당황하고 :

imp.find_module('cutils_ext', cutils.__path__) 

내가 다시 얻을. 어떤 방법으로 이것을 디버깅 할 수 있습니까? 파이썬 인터프리터 (picloud 사용)를 시작할 수 없기 때문에 자세한 모드로 파이썬을 실행할 수는 없지만 런타임에 장황하게 활성화하면 도움이 될 것입니다.

import cutils_ext 
import cutils_ext.cutils_ext 

나는 이유는 모르겠지만, 때때로 나는 또한 그 안에 서브 모듈을 수입하기 위해 모듈을 가져올 수 있습니다

+0

Thanos가 사용중인 모듈과 링크 된 Python 버전입니까? 예를 들어, 엔트리 포인트 프로토콜은 파이썬 2와 파이썬 3 사이에서 다릅니다. – cdarke

+0

예, 모두 python2.7입니다. 내 컴퓨터에 확장 프로그램을 다운로드하고 직접로드 할 수있었습니다. 어느 쪽이든,로드가 발생하기 전에도 find_module이 실패하는 것 같습니다. – UsAaR33

+0

와우, 내 잘못입니다. sys, path, theano에 다른 cutils_ext가있는 것처럼 보입니다. Theano가 미리로드하고있었습니다. Theano (https://github.com/Theano/Theano/issues/728) – UsAaR33

답변

2

당신은 시도 할 수 있습니다.

어쩌면 두 번째 cutils_ext가 처음 cutils_ext에 전혀 존재하지 않을 수도 있습니다.

EDIT : 잠깐 .. 폴더 구조를 게시하고 PYTHONPATH에 무엇이 포함되어 있습니까?

upper_folder (a folder) 
    cutils_ext (folder) 
     __init__.py (file) 
     cutils_ext.so (obviously file) 

upper_folder 로 PYTHONPATH 포인트는 다음 당신은 당신이 주를 게시 한 일을 할 수 있어야합니다 경우 당신이이 상황이있는 경우 __ 초기화 __.py :

난 당신이 뭔가를 생각 이어야합니다.

그러나 PYTHONPATH가 cutils_ext 폴더를 직접 가리키고 있다면 나는 cutils_ext.cutils_ext가 cutil_ext.so에 cutils_ext라는 변수가 없으면 cutils_ext.cutils_ext가 인터프리터에 의미가 없기 때문에 파일을 가져올 수 있다고 가정합니다 ...)

+0

에 버그가 있습니다. "아니면 두 번째 cutils_ext가 처음 cutils_ext에 전혀 존재하지 않을 수도 있습니다." 잘 했어. theano가 다른 위치에서 내 cutils_ext 패키지를 미리로드 한 다음 sys.path를 패치하는 것은 매우 미묘했습니다. cutils_ext는 잘못된 패키지를 참조했습니다. 어 .. 게시물 주셔서 감사합니다 .. 많이 도와 줬어! – UsAaR33

관련 문제