pyx 파일 생성pyd 파일은cython 호출에 사용됩니다

2185 단어 pyxpydcython
pyx 파일은python의 c 확장 파일입니다. 코드는cython의 규범에 부합되어야 합니다. 어떤 편집기로 써도 됩니다.내가eric4에 썼는데, 그 결과 기본적으로python 해석기로 해석되었고, 버그,'문법 오류'가 있음을 알렸습니다.
위의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 
그만~
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.

좋은 웹페이지 즐겨찾기