2016-04-27 19 views
7

Bunu görüyorum PyCharm supports Cython.Cython için PyCharm'ın Kurulumu

Terminalde her zaman derleyebilir ve çalıştırabilirim, ama PyCharm'da bunu yapmanın bir yolu olup olmadığını merak ediyorum. Bağlantıda şöyle der: "Derleme harici araçlar kullanılarak yapılır. Tercih edilen yapı sistemleri (Makefile, setup.py, vb.) Harici araçlar olarak yapılandırılmalıdır." Bu yapılandırmayı nasıl yapacağımı merak ediyorum. PyCharm'da Cython'u kullanan küçük bir Hello World örneği çok takdir edilecektir.

Teşekkür

cevap

8

benim kendi soru cevaplama:

en biz işlevini fib.pyx var diyelim:

def fib(n): 
"""Print the Fibonacci series up to n.""" 
a, b = 0, 1 
while b < n: 
    print b, 
    a, b = b, a + b 

derlemek ve bu

çalıştırmak için iki yol vardır
  1. Bir kurulum dosyası kullanın.

    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 ek açıklamalarla html dosyası oluşturmak için burada bulunmaktadır: dosyayı setup.py olun. Bu dosyayı çalıştırmak için Araçlar -> Setup.py Görev'u çalıştırın. Ardından görev adı olarak build_ext girin ve Komut Satırı giriş tipi için --inplace girin. no.lu, fib.o dosyaları ve fib.so dosya dosyaları üretilir. fib.html ek açıklama dosyası da oluşturulur.

    Şimdi, aşağıdaki kod örneği main.py için, herhangi bir piton dosyasında çalışması gerekir:

    import fib 
    fib.fib(2000) 
    
  2. gitmek çok daha kolay bir yolu pyximport kullanmaktır. Kurulum dosyası gerekli değildir. Bildiğim kadarıyla

    import pyximport; pyximport.install() 
    import fib 
    fib.fib(2000) 
    

    kod aynı derleme bile, fib.c olsa gerçekleşir anladığım kadarıyla: şimdi gibi görünmelidir "your module doesn’t require any extra C libraries or a special build setup." dosya main.py eğer bu sadece kullanılabileceğini unutmayın Fib.o ve fib.so dosyaları proje klasöründe bitmez. fib.html kodu da üretilmez, ancak ana dosyaya iki satır ekleyerek bu düzeltilebilir. Yeni hatlar ile main.py artık şudur:

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

, biz de pycharm bilir sağlamak zorunda olduğunu bir Python modülü içeriyor, yoksa bunu göz ardı eder fodler paket . Https://stackoverflow.com/questions/40203488/pycharm-does-not-recognize-cython-modules-located-in-path adresine bakın. – Contango