Ich baue ein plattformunabhängiges Cython-Projekt, bei dem ich Compiler-Argumente basierend auf dem verwendeten Compiler übergeben möchte. Ich kann den Compiler basierend auf der Plattform schätzen oder annehmen, dass es derselbe Compiler ist, der für Python verwendet wird, aber es ist nicht garantiert, dass er übereinstimmt. Normalerweise injiziere ich die Methode cmdclass
arg zu setuptool setup und umgehe die Befehle install oder build_ext, um den internen Status zu überprüfen. Aber in diesem Fall muss ich die Erweiterungsmodule cythonisieren, bevor ich die Wrapper erreiche.Wie kann der Compiler identifiziert werden, bevor Cython-Erweiterungen definiert werden?
Gibt es eine Möglichkeit, den Compiler in setup.py vor dem Cything der Erweiterungsmodule zu ermitteln?
können Sie den Compiler als Argument nicht an setup.py übergeben: 'python setup.py build --compiler = mingw32'? – denfromufa
können Sie auch cmake verwenden, um Cython-Code plattformübergreifend zu kompilieren: https://github.com/thewtex/cython-cmake-example – denfromufa
@denfromufa Sie können '--compiler = mingw32' übergeben, aber andere Empfänger der Das Repository weiß nicht unbedingt, worauf das Compiler-Argument zu setzen ist oder ob es sich um eine Abhängigkeit von einem anderen Repo handelt. Und 'pip install' wird definitiv kein solches Argument für setuptools erzeugen. Ich könnte das Argument lesen, wenn ich selbst nur "python setup.py install" benutze - das stimmt. – Pyrce