Ich kann es nicht sofort sehen, aber ich habe die Python-Quelle heruntergeladen. (Es ist vielleicht besser, die Quelle von 3.4 herunterzuladen, aber im Moment lade ich die Quelle von 2.7 (Python-2.7.7) herunter, die ich verwende.) In Zukunft können Sie sogar den Inhalt der Quelle anzeigen, indem Sie die Spezifikationen überprüfen (als Hilfe).
Suchen Sie vorerst nach dem Eingang von python.exe.
Suchen Sie zunächst mit main (). Einige Hauptleitungen wurden gefunden, einschließlich Demo. Sie können sich eine ungefähre Vorstellung vom Dateinamen machen, aber auch das Makefile ansehen, um die Suchergebnisse zu bestätigen.
Als Ergebnis der Suche wurde die folgende Zeile in PC / os2emx / Makefile gefunden.
PYTHON.EXE= python.exe
Wo ich diesen Kerl baue
$(PYTHON.EXE): $(SRC.EXE) $(PYTHON.EXEIMP) $(OUT)python.def
$(CC) -Zmt $(LDMODE.EXE) -Zcrtdll -Wall $(INCLUDE) -L. -lgcc -o $@ $(SRC.EXE) $(PYTHON.EXEIMP) $(LIBS) $(OUT)python.def
$(EXEOPT) -aq $(PYTHON.EXE) -h$(NFILES)
Die Definition von SRC.EXE lautet also
SRC.EXE= $(TOP)Modules/python.c
Der Inhalt dieser Quelle (Modules / python.c) lautet wie folgt.
/* Minimal main program -- everything is loaded from the library */
#include "Python.h"
#ifdef __FreeBSD__
#include <floatingpoint.h>
#endif
int
main(int argc, char **argv)
{
/* 754 requires that FP exceptions run in "no stop" mode by default,
* and until C vendors implement C99's ways to control FP exceptions,
* Python requires non-stop mode. Alas, some platforms enable FP
* exceptions by default. Here we disable them.
*/
#ifdef __FreeBSD__
fp_except_t m;
m = fpgetmask();
fpsetmask(m & ~FP_X_OFL);
#endif
return Py_Main(argc, argv);
}
API Bei der Prüfung des oben Gesagten dachte ich, dass für die Python-API ein Eintrag in python.def definiert ist. Der Inhalt von python.def sieht folgendermaßen aus. (Auszug)
LIBRARY PYTHON24 INITINSTANCE TERMINSTANCE
DESCRIPTION 'Python 2.4 Core DLL'
PROTMODE
DATA MULTIPLE NONSHARED
EXPORTS
; Data
PyCFunction_Type
・ ・ ・
; Code
PyArg_Parse
・ ・ ・
Py_Initialize
Py_IsInitialized
Py_Main
Py_MakePendingCalls
Py_Malloc
Py_NewInterpreter
Py_Realloc
・ ・ ・
Natürlich gibt es auch eine API-Referenzseite.
Wenn Sie sich die Quelle ansehen, möchten Sie möglicherweise mit einem API-Eintrag beginnen.
Im Demo-Ordner in der heruntergeladenen Quelle gab es so etwas wie Beispielcode, der die API verwendete. Ich weiß nicht, ob ich die API verwenden werde, aber es kann hilfreich sein, wenn ich sie verwende.
Als ich versuchte, die Python-Quelle zu lesen, suchte ich auf der Website nach den analysierten Informationen, fand sie aber bisher noch nicht. Es wäre hilfreich, wenn ich den Umriss verstehen könnte. Wenn ich etwas mehr recherchiere und interessantes Material finde, kann ich einen Artikel posten.
Recommended Posts