web-dev-qa-db-ja.com

いくつかの.pyx用のCythonsetup.py

もっと早くcythonizeしたいです。 1つの.pyxのコードは

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize("MyFile.pyx")
)

Cythonizeしたい場合はどうなりますか

  • ext.pyxを含むいくつかのファイル。名前で呼びます。

  • フォルダ内のすべての.pyxファイル

どちらの場合も、setup.pyのpythonコードは何ですか?

20
kiriloff

差出人: https://github.com/cython/cython/wiki/enhancements-distutils_preprocessing

# several files with ext .pyx, that i will call by their name
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules=[
    Extension("primes",       ["primes.pyx"]),
    Extension("spam",         ["spam.pyx"]),
    ...
]

setup(
  name = 'MyProject',
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules,
)


# all .pyx files in a folder
from distutils.core import setup
from Cython.Build import cythonize

setup(
  name = 'MyProject',
  ext_modules = cythonize(["*.pyx"]),
)
23
iljau

上記の答えは私には完全には明確ではありませんでした。異なるディレクトリにある2つのファイルをcythonizeするには、cythonize(...)関数内にそれらをリストするだけです。

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize(["folder1/file1.pyx", "folder2/file2.pyx"])
)
14
Naijaba