GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Können wir C-Code in Python verwenden?

Sie müssen nicht verlängern Python (was übrigens nicht trivial ist), kann aber fremde Funktionsschnittstellen wie ctypes verwenden .


Ich möchte diese C-Funktion oder ausführbare Dateien in Python aufrufen. Ist das möglich?

Ja, Sie können C-Code schreiben, der als Modul in Python importiert werden kann. Python ruft diese Erweiterungsmodule auf . Sie können es direkt aus Python aufrufen, ein Beispiel aus der Dokumentation:

Python-Code

import example
result = example.do_something()

C-Code

static PyObject * example(PyObject *self)
{
    // do something
    return Py_BuildValue("i", result);
}

Wenn ich möchte, dass der C-Code eine Bibliothek ist, was bedeutet, dass ich ihn mit #include und Verknüpfung des *.o wahrscheinlich in Python verwende, wie geht das oder ist das möglich?

Sie erstellen es als gemeinsam genutzte Bibliothek *.dll oder *.so Sie können auch die Verwendung von distutils zum Verteilen Ihres Moduls untersuchen.

Wenn ich den C-Code in eine ausführbare Datei schreibe, was bedeutet, dass er zu einem Befehl wird, kann ich ihn dann direkt in Python aufrufen?

Wenn Sie eine *.exe schreiben dann tun Sie das Gegenteil (Aufrufen von Python aus C). Die von Ihnen gewählte Methode (exe oder gemeinsam genutzte Bibliothek) hängt davon ab, ob Sie ein "C-Programm mit etwas Python" möchten oder ein "Python-Programm mit etwas C" .

Außerdem habe ich gehört, dass Python-Code kompiliert werden kann. Bedeutet das, dass wir den Code ohne die Quelldatei ausführen können? Sind die Ausgabedateien Binärdateien? Verbessert es die Leistung?

Python liest *.py Dateien und kompiliert zu *.pyc Bytecode Dateien, wenn Sie es ausführen. Der Bytecode wird dann in der virtuellen Python-Maschine ausgeführt. Das bedeutet, "das Ausführen derselben Datei beim zweiten Mal schneller ist, da eine erneute Kompilierung von der Quelle zum Bytecode vermieden werden kann." (aus dem Python-Glossar) Also, wenn Sie Ihre *.py nicht bearbeitet haben Dateien, wird die Datei *.pyc ausgeführt . Sie können *.pyc verteilen Dateien ohne *.py Dateien, sie sind jedoch nicht verschlüsselt und können rückentwickelt werden.


Linux
  1. Konvertieren Ihres Python 2-Codes in Python 3

  2. Können Sie Anker ^ $ mit Ls verwenden?

  3. Wie kann ich das 'Backend' in Matplotlib in Python einstellen?

  4. Wie kann ich einen Warndialog mit Python unter Linux verwenden?

  5. Wie verwende ich Qt in Visual Studio Code?

10+ beste Python-IDEs für Linux

Was ist Python:Eine Einführung in eine plattformübergreifende Programmiersprache

So verwenden Sie Python zum Abfragen von WMI (Linux – Windows)

So verwenden Sie Sets in Python

Wie kann ich C++-Code profilieren, der unter Linux ausgeführt wird?

Kann ich APT auf TinyCore verwenden?