:
のは、我々が機能fib.pyxを持っているとしましょう:
def fib(n):
"""Print the Fibonacci series up to n."""
a, b = 0, 1
while b < n:
print b,
a, b = b, a + b
この
をコンパイルして実行するには2つの方法があります。
セットアップファイルを使用してください。
from distutils.core import setup
from Cython.Build import cythonize
ext_options = {"compiler_directives": {"profile": True}, "annotate": True}
setup(
ext_modules = cythonize("fib.pyx", **ext_options)
)
がext_options
が注釈を含むHTMLファイルを生成するためにここに含まれています:ファイルsetup.pyを行います。このファイルを実行するには、ツール - > setup.pyタスクを実行する必要があります。次にbuild_ext
をと入力してタスク名を入力し、コマンドライン入力タイプ--inplace
の入力を求められたら入力します。ファイルfib.c,fib.oと実行可能ファイルfib.soが生成されます。注釈ファイルfib.htmlも作成されます。
import fib
fib.fib(2000)
行くにはもっと簡単な方法がpyximportを使用することです:
さて、次のコードは、例えばmain.py、任意のPythonのファイルで作業する必要があります。セットアップファイルは必要ありません。限り
import pyximport; pyximport.install()
import fib
fib.fib(2000)
私は同じコードのコンパイルでも、fib.cかかわらず行われます理解して:は今のようになります"your module doesn’t require any extra C libraries or a special build setup."ファイルmain.py場合にのみ使用できることに注意してくださいfib.oとfib.soファイルはプロジェクトフォルダにありません。 fib.htmlコードも生成されませんが、これはメインファイルに2行追加することで修正できます。 main.pyは今、新たなラインを持つ:これらの手順に加えて
import pyximport; pyximport.install()
import subprocess
subprocess.call(["cython", "-a", "fib.pyx"])
import fib
fib.fib(2000)
、我々はまた、PyCharmがパッケージfodlerはPythonモジュールが含まれていることを知っているか、あるいはそれを無視することを確認する必要があり。 https://stackoverflow.com/questions/40203488/pycharm-does-not-recognize-cython-modules-located-in-pathを参照してください。 – Contango