2012-10-15 3 views
1

저는 리눅스 환경에서 파이썬과 사이몬을 사용하려고합니다. 그래서 cython 문서에 언급 된 primes.pyx 예제를 사용하려고합니다.ImportError : 모듈 이름이 소수

xyz 디렉토리에 primes.pyx을 만들었으며이 파일을 cython primes.pyx을 사용하여 컴파일했습니다. 파이썬 인터프리터를 호출하고 import primes를 시도한 후에 다음과 같은 문제가 발생했습니다.

ImportError: No module named primes 

신체가 나를 도와 줄 수 있습니까?

+0

인터프리터를 호출하는 디렉토리와 동일한 디렉토리에''primes.pyd'' 파일이 있습니까? –

+0

나는 primes.pyd가 없다. 나는 primes.py와 primes.c 만 가지고있다. 그 파일을 컴파일하는 동안 python.h가 발견되지 않는다는 오류가 발생합니다 – user1733051

+0

즉, Python 소스를 설치해야합니다. 대부분의 리눅스 배포판에는 패키지가 들어 있습니다. –

답변

0

개의 파일을 setup.py없이 가져올 수있는 모듈을 가져 오는 것을 잊어 버린 경우처럼 들릴 수 있습니다. 설명서는 here입니다.

시도 모듈의 상단에

import pyximport; pyximport.install() 

을 추가하거나 import primes하기 전에 인터프리터에서 실행.

+0

제안을 받았다. 감사합니다. jdotjdot89 덕분에 도움이되었습니다. – user1733051

+0

감사합니다. – user1733051

+0

기꺼이 도와 드리겠습니다. 이 방법이 효과가 있다면 미래의 독자들이 알 수 있도록이 대답을 받아 들여야합니다. – jdotjdot

2

Cython 모듈은 사용하기 전에 컴파일해야합니다. 두 가지 옵션이 있습니다. this page에 설명 된대로 모듈에 대해 setup.py을 만들거나 pyximport을 사용하여 import으로 모듈을 자동으로 컴파일하고 빌드하십시오.

첫 번째 옵션은 다른 라이브러리 종속성이있는 모듈이 있거나 여러 파일에 분산되어있는 경우에 가장 적합합니다. 두 번째 옵션은 소형의 독립형 모듈에 가장 적합합니다.

pyximport을 사용하려면 임의의 Cython 모듈을 가져 오기 전에 import pyximport; pyximport.install()을 추가하십시오. 그런 다음 import Cython 모듈을 사용하면 Cython이 자동으로 모듈을 컴파일합니다.

+0

import pyximport를 수행 할 수있었습니다. pyximport.install()가 작동합니다. 나는 일종의 setup.py를 사용하여 임포트하려고 노력 중이다. hello.pyx 예제를 문서와 같이 setup.py를 만든 다음 cython hello.pyx와 python setyp.py build_ext - inplace로 시작한 다음 python을 시작하고 hello에서 가져옴 say_hello_to, 확실하지 않음 해당 모듈을 실행하는 방법. 나 좀 도와 줄 수있어? 고마워. – user1733051

관련 문제