Ich baue ein Paket in Cython. Ich verwende Folgendes als Struktur für setup.py
:
Ich bekomme jedoch einen Fehler bei der Installation in Python 3. Es funktioniert in Python 2, es kompiliert jedoch nicht in Python 3 mit dem folgenden Fehler:
dynamisches Modul definiert keine Modulexportfunktion
Wie kann ich dieses Problem lösen? Ist die Struktur von setup.py
der Grund, warum dies nicht kompiliert wird?
Sie müssen setup.py mit Python 3 aufrufen ( python3 setup.py build_ext
, vielleicht --inplace
). Das liegt daran, dass Python 3 einen anderen Namen für die Funktion init
definiert, die beim Start des Moduls aufgerufen wird. Daher müssen Sie sie mit Python 3 erstellen, um sicherzustellen, dass der richtige Name generiert wird.
Siehe Cython-Kompilierungsfehler: dynamisches Modul definiert nicht Modul-Export-Funktion und Wie Python 3-Quelle in Cython setup.py? für etwas mehr Details angeben (es grenzt an ein Duplikat dieser Fragen, ist aber nicht ganz meiner Ansicht nach)