2016-09-28 7 views
1

У меня есть Cython файл combined.pyx, который объединяет несколько дарохранительницы файлы вместе:Cython неправильно скачет перекомпиляции при изменении включаемого

include file1.part.pyx 
include file2.part.pyx 
... 

У меня также есть setup.py:

from distutils.core import setup 
from Cython.Distutils import build_ext, Extension 

setup(
    ext_modules=[Extension(
     "bla.combined", 
     ["src/bla/combined.pyx"])], 
    requires=['Cython'], 
    cmdclass={'build_ext': build_ext}) 

Что я бегу например:

python setup.py build_ext --build-lib src 

Проблема, с которой я столкнулся, заключается в том, что установка работает только с combined.pyx при определении необходимости повторного запуска. Он не обращает внимания на file1.part.pyx, поэтому, когда я изменить file1.part.pyx и повторно запустить установку ничего не происходит:

python2.7 setup.py build_ext --build-lib src 
running build_ext 
skipping 'src/bla/combined.c' Cython extension (up-to-date) 

Process finished with exit code 0 

Как я говорю Cython/Python, что он должен также проверить file1.part.pyx и file2.part.pyx при определении того, перекомпилировать combined.pyx?

ответ

1

Исправление составляет cythonize расширение до присвоения setup.

Фиксированный setup.py:

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

setup(
    ext_modules=cythonize(Extension(
     "bla.combined", 
     ["src/bla/combined.pyx"])), 
    requires=['Cython']) 

 Смежные вопросы

  • Нет связанных вопросов^_^