pyx 파일 생성pyd 파일은cython 호출에 사용됩니다
위의pyx 파일은 원본 코드 파일일 뿐입니다.python에 호출되고 실행하려면 원본 코드만 쓰면 부족합니다.구체적으로 말하자면, 또 바꾸어야 한다.c 또는.c++ 파일, 그리고 더 나아가.pyd 파일.
pyd 파일이야말로 직접 사용할 수 있는 파일이다.상술한 목적을 달성하기 위해서는 setup을 써야 한다.py 스크립트는 다음과 같습니다.
#!/usr/bin/python
#python version: 2.7.3
#Filename: SetupTestOMP.py
# Run as:
# python setup.py build_ext --inplace
import sys
sys.path.insert(0, "..")
from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
from Cython.Distutils import build_ext
# ext_module = cythonize("TestOMP.pyx")
ext_module = Extension(
"TestOMP",
["TestOMP.pyx"],
extra_compile_args=["/openmp"],
extra_link_args=["/openmp"],
)
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = [ext_module],
)
이것은python 스크립트입니다.python 해석기 아래에서 실행할 수 있습니다.콘솔 아래에서 "python setup"명령을 실행합니다.py build_ext --inplace, TestoMP가 생성됩니다.pyd 파일.
물론'build'디렉터리 아래의'lib'파일과 같은 잡다한 파일도 있다.
이것은 윈도우즈vistualstudio 환경에서 제시된 것입니다.
linux+gcc 환경에서 생성해야 합니다.so 파일입니다. 그리고 "/openmp"옵션은 "-fopenmp"로 써야 합니다.
TestoMP를 작성합니다.py
파일 상술한 두 가지 절차는 어떤python 효율 병목 모듈(이전에는 프로필 도구로 위치를 정해야 함)을 효율이 높은 코드로python의 c 확장 형식으로 쓴 것과 같다. 다음은python 코드에서 그들을 호출하는 것이다.TestOMP.py는 바로 이 호출된 스크립트입니다. 아래와 같습니다.
from TestOMP import Test
Test()
이것은 매우 쉽다. import를 사용하고 호출한다.콘솔에서 "python TestoMP.py"를 입력하고 실행합니다.추가:python에서 Cython을 가져올 수 없습니다.pyx 파일?
해결 방법:
import에 해당하는 패키지를 추가하기 전에 다음을 추가합니다.
import pyximport
pyximport.install()
하면, 만약, 만약...No module named pyximport
필요한 경우:
pip install Cython
그만~이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.