環境によってCythonでうまくコード変換ができない場合の対処


なぜかWindowsやUbuntuでは素直に変換しビルドが成功するのに、CentOSではうまくpyxをC/CPPに変換できない問題が発生しました。

この原因がどのようなものなのか色々と調べてみたのですが、検索の仕方がまずかったのか謎のままでいました。

きっとCython.Distutils.build_extが悪さしてるんだろうなという検討はついていたので、

それを標準のdistutils.command.build_ext.build_extに変更し、

さらにCython.Compiler.Main.compileを使用して"*.pyx"をC/CPPに変換させるような処理に変更しました。

C/CPPに強制変換させているので、sourcesにはpyxではなく、変換したC/CPPファイルを追加するようにも変更してください。

この変更によって、たぶんCentOSのようにうまく変換できない環境でも対応できるかと思います。

変更した際のdiffはこちら

備忘録♪備忘録♪