2016-04-27 32 views
7

これはPyCharm supports Cythonです。Cython用PyCharmのセットアップ

私はいつもコンパイルしてターミナルで動くことができましたが、PyCharmでこれを行う方法があるのだろうかと思います。リンクでは、「コンパイルは外部ツールを使用して行われます。好ましいビルドシステム(Makefile、setup.pyなど)は外部ツールとして設定する必要があります。私はこの設定を行う方法が不思議です。 Cythonを使ったPyCharmの小さなHello Worldの例は、非常に高く評価されます。ここで自分の質問に答える

おかげ

答えて

8

のは、我々が機能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つの方法があります。
  1. セットアップファイルを使用してください。

    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) 
    
  2. 行くにはもっと簡単な方法が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.ofib.soファイルはプロジェクトフォルダにありません。 fib.htmlコードも生成されませんが、これはメインファイルに2行追加することで修正できます。 main.pyは今、新たなラインを持つ:これらの手順に加えて

    import pyximport; pyximport.install() 
    import subprocess 
    subprocess.call(["cython", "-a", "fib.pyx"]) 
    import fib 
    fib.fib(2000) 
    
+0

、我々はまた、PyCharmがパッケージfodlerはPythonモジュールが含まれていることを知っているか、あるいはそれを無視することを確認する必要があり。 https://stackoverflow.com/questions/40203488/pycharm-does-not-recognize-cython-modules-located-in-pathを参照してください。 – Contango