3. Python konfigurieren¶
3.1. Optionen von configure¶
List all ./configure script options using:
./configure --help
Siehe auch Misc/SpecialBuilds.txt in der Python-Quelldistribution.
3.1.1. Allgemeine Optionen¶
- --enable-loadable-sqlite-extensions¶
Unterstützt ladbare Erweiterungen im Erweiterungsmodul
_sqlitedes Modulssqlite3(Vorgabe ist nein).Siehe die Methode
sqlite3.Connection.enable_load_extension()des Modulssqlite3.Neu in Version 3.6.
- --disable-ipv6¶
Schaltet die Unterstützung für IPv6 ab (standardmäßig eingeschaltet, sofern unterstützt), siehe das Modul
socket.
- --enable-big-digits=[15|30]¶
Legt die Größe der Ziffern von Python-
intin Bit fest: 15 oder 30 Bit.Standardmäßig beträgt die Zifferngröße 30.
Setzt
PYLONG_BITS_IN_DIGITauf15oder30.Siehe
sys.int_info.bits_per_digit.
- --with-cxx-main¶
- --with-cxx-main=COMPILER¶
Compile the Python
main()function and link Python executable with C++ compiler:$CXX, or COMPILER if specified.
- --with-suffix=SUFFIX¶
Setzt das Suffix der ausführbaren Python-Datei auf SUFFIX.
Das Standardsuffix ist
.exeunter Windows und macOS (ausführbare Dateipython.exe),.jsbei Emscripten node,.htmlbei Emscripten browser,.wasmbei WASI und eine leere Zeichenkette auf den übrigen Plattformen (ausführbare Dateipython).Geändert in Version 3.11: Das Standardsuffix auf der WASM-Plattform ist eines von
.js,.htmloder.wasm.
- --with-tzpath=<list of absolute paths separated by pathsep>¶
Wählt den Standard-Suchpfad für Zeitzonen für
zoneinfo.TZPATH. Siehe die Konfiguration zur Übersetzungszeit des Modulszoneinfo.Vorgabe:
/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo.Siehe den Pfadtrenner
os.pathsep.Neu in Version 3.9.
- --without-decimal-contextvar¶
Baut das Erweiterungsmodul
_decimalmit einem Thread-lokalen Kontext anstelle eines Coroutine-lokalen Kontexts (Vorgabe), siehe das Moduldecimal.Siehe
decimal.HAVE_CONTEXTVARund das Modulcontextvars.Neu in Version 3.9.
- --with-dbmliborder=<list of backend names>¶
Überschreibt die Reihenfolge, in der die Datenbank-Backends für das Modul
dbmgeprüft werdenEin gültiger Wert ist eine mit Doppelpunkt (
:) getrennte Zeichenkette mit den Namen der Backends:ndbm;gdbm;bdb.
- --without-c-locale-coercion¶
Schaltet die Angleichung der C-Locale an eine UTF-8-basierte Locale ab (standardmäßig eingeschaltet).
Definiert das Makro
PY_COERCE_C_LOCALEnicht.Siehe
PYTHONCOERCECLOCALEund PEP 538.
- --with-platlibdir=DIRNAME¶
Name des Verzeichnisses der Python-Bibliothek (Vorgabe ist
lib).Fedora und SuSE verwenden auf 64-Bit-Plattformen
lib64.Siehe
sys.platlibdir.Neu in Version 3.9.
- --with-wheel-pkg-dir=PATH¶
Verzeichnis der Wheel-Pakete, die das Modul
ensurepipverwendet (standardmäßig keines).Die Paketierungsrichtlinien einiger Linux-Distributionen empfehlen, Abhängigkeiten nicht beizulegen. Fedora installiert Wheel-Pakete zum Beispiel im Verzeichnis
/usr/share/python-wheels/und installiert das Paketensurepip._bundlednicht.Neu in Version 3.10.
- --with-pkg-config=[check|yes|no]¶
Ob configure pkg-config verwenden soll, um die Abhängigkeiten für den Build zu erkennen.
check(Vorgabe): pkg-config ist optionalyes: pkg-config ist zwingendno: configure verwendet pkg-config nicht, selbst wenn es vorhanden ist
Neu in Version 3.11.
- --enable-pystats¶
Turn on internal statistics gathering.
The statistics will be dumped to a arbitrary (probably unique) file in
/tmp/py_stats/, orC:\temp\py_stats\on Windows.Zum Lesen der Daten verwende
Tools/scripts/summarize_stats.py.Neu in Version 3.11.
3.1.2. WebAssembly-Optionen¶
- --with-emscripten-target=[browser|node]¶
Set build flavor for
wasm32-emscripten.browser(default): preload minimal stdlib, default MEMFS.node: NODERAWFS and pthread support.
Neu in Version 3.11.
- --enable-wasm-dynamic-linking¶
Schaltet die Unterstützung für dynamisches Linken bei WASM ein.
Dynamisches Linken ermöglicht
dlopen. Die Dateigröße der ausführbaren Datei wächst, weil toter Code nur begrenzt entfernt werden kann und zusätzliche Funktionen hinzukommen.Neu in Version 3.11.
- --enable-wasm-pthreads¶
Schaltet die Unterstützung für pthreads bei WASM ein.
Neu in Version 3.11.
3.1.3. Optionen für die Installation¶
- --prefix=PREFIX¶
Installiert architekturunabhängige Dateien in PREFIX. Unter Unix ist die Vorgabe
/usr/local.Dieser Wert lässt sich zur Laufzeit über
sys.prefixabrufen.Mit
--prefix="$HOME/.local/"lässt sich Python zum Beispiel im eigenen Benutzerverzeichnis installieren.
- --exec-prefix=EPREFIX¶
Installiert architekturabhängige Dateien in EPREFIX, Vorgabe ist
--prefix.Dieser Wert lässt sich zur Laufzeit über
sys.exec_prefixabrufen.
3.1.4. Optionen für die Leistung¶
Configuring Python using --enable-optimizations --with-lto (PGO + LTO) is
recommended for best performance.
- --enable-optimizations¶
Schaltet Profile Guided Optimization (PGO) über
PROFILE_TASKein (standardmäßig abgeschaltet).Der C-Compiler Clang benötigt für PGO das Programm
llvm-profdata. Unter macOS benötigt es auch GCC, denn GCC ist dort nur ein anderer Name für Clang.Schaltet außerdem die semantische Interposition in libpython ab, wenn
--enable-sharedund GCC verwendet werden: fügt-fno-semantic-interpositionzu den Compiler- und Linker-Flags hinzu.Neu in Version 3.6.
Geändert in Version 3.10: Verwendet
-fno-semantic-interpositionbei GCC.
- PROFILE_TASK¶
Im Makefile verwendete Umgebungsvariable: die Python-Befehlszeilenargumente für die Aufgabe, die das Profil erzeugt.
Vorgabe:
-m test --pgo --timeout=$(TESTTIMEOUT).Neu in Version 3.8.
- --with-lto=[full|thin|no|yes]¶
Schaltet Link Time Optimization (LTO) in jedem Build ein (standardmäßig abgeschaltet).
Der C-Compiler Clang benötigt für LTO
llvm-ar(unter macOSar) sowie einen LTO-fähigen Linker (ld.goldoderlld).Neu in Version 3.6.
Neu in Version 3.11: Um ThinLTO zu verwenden, nimm bei Clang
--with-lto=thin.
- --with-computed-gotos¶
Schaltet berechnete gotos in der Auswertungsschleife ein (auf unterstützten Compilern standardmäßig eingeschaltet).
- --without-pymalloc¶
Schaltet den spezialisierten Python-Speicherallokator pymalloc ab (standardmäßig eingeschaltet).
Siehe auch die Umgebungsvariable
PYTHONMALLOC.
- --without-doc-strings¶
Schaltet statische Dokumentationszeichenketten ab, um den Speicherbedarf zu verringern (standardmäßig eingeschaltet). In Python definierte Dokumentationszeichenketten sind davon nicht betroffen.
Definiert das Makro
WITH_DOC_STRINGSnicht.Siehe das Makro
PyDoc_STRVAR().
- --enable-profiling¶
Schaltet die Profilierung von Code auf C-Ebene mit
gprofein (standardmäßig abgeschaltet).
3.1.5. Debug-Build von Python¶
Ein Debug-Build ist ein Python, das mit der configure-Option --with-pydebug gebaut wurde.
Wirkung eines Debug-Builds:
Zeigt standardmäßig alle Warnungen an: die Liste der Standard-Warnfilter im Modul
warningsist leer.Fügt
dzusys.abiflagshinzu.Fügt die Funktion
sys.gettotalrefcount()hinzu.Fügt die Befehlszeilenoption
-X showrefcounthinzu.Add
PYTHONTHREADDEBUGenvironment variable.Fügt Unterstützung für die Variable
__lltrace__hinzu: schaltet die Verfolgung auf niedriger Ebene in der Bytecode-Auswertungsschleife ein, wenn die Variable definiert ist.Installiert Debug-Haken an den Speicherallokatoren, um Pufferüberläufe und andere Speicherfehler zu erkennen.
Definiert die Makros
Py_DEBUGundPy_REF_DEBUG.Fügt Laufzeitprüfungen hinzu: Code, der von
#ifdef Py_DEBUGund#endifumgeben ist. Schaltet die Zusicherungenassert(...)und_PyObject_ASSERT(...)ein, indem das MakroNDEBUGnicht gesetzt wird (siehe auch die configure-Option--with-assertions). Die wichtigsten Laufzeitprüfungen:Fügt Plausibilitätsprüfungen der Funktionsargumente hinzu.
Unicode- und int-Objekte werden mit einem Muster im Speicher erzeugt, damit die Verwendung nicht initialisierter Objekte auffällt.
Stellt sicher, dass Funktionen, die die aktuelle Ausnahme löschen oder ersetzen können, nicht bei ausgelöster Ausnahme aufgerufen werden.
Prüft, dass Freigabefunktionen die aktuelle Ausnahme nicht verändern.
Der Garbage Collector (Funktion
gc.collect()) führt einige grundlegende Prüfungen der Objektkonsistenz durch.Das Makro
Py_SAFE_DOWNCAST()prüft auf Unter- und Überlauf von Ganzzahlen, wenn von breiten auf schmale Typen herabgecastet wird.
Siehe auch den Entwicklungsmodus von Python und die configure-Option --with-trace-refs.
Geändert in Version 3.8: Release builds and debug builds are now ABI compatible: defining the
Py_DEBUG macro no longer implies the Py_TRACE_REFS macro (see the
--with-trace-refs option), which introduces the only ABI
incompatibility.
3.1.6. Debug-Optionen¶
- --with-pydebug¶
Baut Python im Debug-Modus: definiert das Makro
Py_DEBUG(standardmäßig abgeschaltet).
- --with-trace-refs¶
Schaltet die Verfolgung von Referenzen zur Fehlersuche ein (standardmäßig abgeschaltet).
Wirkung:
Definiert das Makro
Py_TRACE_REFS.Add
sys.getobjects()function.Fügt die Umgebungsvariable
PYTHONDUMPREFShinzu.
This build is not ABI compatible with release build (default build) or debug build (
Py_DEBUGandPy_REF_DEBUGmacros).Neu in Version 3.8.
- --with-assertions¶
Baut mit eingeschalteten C-Zusicherungen (Vorgabe ist nein):
assert(...);und_PyObject_ASSERT(...);.Wenn gesetzt, wird das Makro
NDEBUGin der Compiler-VariablenOPTnicht definiert.Siehe auch die Option
--with-pydebug(Debug-Build), die Zusicherungen ebenfalls einschaltet.Neu in Version 3.6.
- --with-valgrind¶
Schaltet die Unterstützung für Valgrind ein (Vorgabe ist nein).
- --with-dtrace¶
Schaltet die Unterstützung für DTrace ein (Vorgabe ist nein).
Siehe CPython mit DTrace und SystemTap instrumentieren.
Neu in Version 3.6.
- --with-address-sanitizer¶
Enable AddressSanitizer memory error detector,
asan(default is no).Neu in Version 3.6.
- --with-memory-sanitizer¶
Schaltet den Belegungsfehlersucher MemorySanitizer ein,
msan(Vorgabe ist nein).Neu in Version 3.6.
- --with-undefined-behavior-sanitizer¶
Schaltet den Sucher für undefiniertes Verhalten UndefinedBehaviorSanitizer ein,
ubsan(Vorgabe ist nein).Neu in Version 3.6.
3.1.7. Optionen des Linkers¶
Schaltet das Bauen einer gemeinsam genutzten Python-Bibliothek ein:
libpython(Vorgabe ist nein).
- --without-static-libpython¶
Baut
libpythonMAJOR.MINOR.anicht und installiertpython.onicht (wird standardmäßig gebaut und eingeschaltet).Neu in Version 3.10.
3.1.8. Optionen für Bibliotheken¶
- --with-libs='lib1 ...'¶
Linkt gegen zusätzliche Bibliotheken (Vorgabe ist nein).
- --with-system-expat¶
Baut das Modul
pyexpatmit einer installiertenexpat-Bibliothek (Vorgabe ist nein).
- --with-system-ffi¶
Build the
_ctypesextension module using an installedffilibrary, see thectypesmodule (default is system-dependent).
- --with-system-libmpdec¶
Build the
_decimalextension module using an installedmpdeclibrary, see thedecimalmodule (default is no).Neu in Version 3.3.
- --with-readline=editline¶
Use
editlinelibrary for backend of thereadlinemodule.Define the
WITH_EDITLINEmacro.Neu in Version 3.10.
- --without-readline¶
Baut das Modul
readlinenicht (wird standardmäßig gebaut).Definiert das Makro
HAVE_LIBREADLINEnicht.Neu in Version 3.10.
- --with-libm=STRING¶
Überschreibt die Mathematikbibliothek
libmmit STRING (Vorgabe ist systemabhängig).
- --with-libc=STRING¶
Überschreibt die C-Bibliothek
libcmit STRING (Vorgabe ist systemabhängig).
- --with-openssl=DIR¶
Wurzelverzeichnis von OpenSSL.
Neu in Version 3.7.
- --with-openssl-rpath=[no|auto|DIR]¶
Legt das Laufzeit-Bibliotheksverzeichnis (rpath) für die OpenSSL-Bibliotheken fest:
no(Vorgabe): setzt keinen rpath;auto: ermittelt den rpath selbsttätig aus--with-opensslundpkg-config;DIR: setzt einen ausdrücklichen rpath.
Neu in Version 3.10.
3.1.9. Sicherheitsoptionen¶
- --with-hash-algorithm=[fnv|siphash13|siphash24]¶
Wählt den Hash-Algorithmus für die Verwendung in
Python/pyhash.c:siphash13(default);siphash24;fnv.
Neu in Version 3.4.
Neu in Version 3.11:
siphash13kam hinzu und ist die neue Vorgabe.
- --with-builtin-hashlib-hashes=md5,sha1,sha256,sha512,sha3,blake2¶
Integrierte Hash-Module:
md5;sha1;sha256;sha512;sha3(mit shake);blake2.
Neu in Version 3.9.
- --with-ssl-default-suites=[python|openssl|STRING]¶
Überschreibt die Zeichenkette der Standard-Cipher-Suites von OpenSSL:
python(Vorgabe): verwendet die von Python bevorzugte Auswahl;openssl: lässt die Vorgaben von OpenSSL unangetastet;STRING: verwendet eine eigene Zeichenkette
Siehe das Modul
ssl.Neu in Version 3.7.
Geändert in Version 3.10: Die Einstellungen
pythonund STRING setzen zusätzlich TLS 1.2 als niedrigste Protokollversion.
3.1.10. macOS-Optionen¶
See Mac/README.rst.
- --enable-universalsdk¶
- --enable-universalsdk=SDKDIR¶
Erzeugt einen Build als universelle Binärdatei. SDKDIR gibt an, welches macOS-SDK für den Build verwendet werden soll (Vorgabe ist nein).
- --enable-framework¶
- --enable-framework=INSTALLDIR¶
Erzeugt ein Python.framework anstelle einer herkömmlichen Unix-Installation. Das optionale INSTALLDIR gibt den Installationspfad an (Vorgabe ist nein).
- --with-universal-archs=ARCH¶
Gibt an, welche Art universeller Binärdatei erzeugt werden soll. Diese Option ist nur gültig, wenn
--enable-universalsdkgesetzt ist.Optionen:
universal2;32-bit;64-bit;3-way;intel;intel-32;intel-64;all.
- --with-framework-name=FRAMEWORK¶
Gibt den Namen des Python-Frameworks unter macOS an, nur gültig, wenn
--enable-frameworkgesetzt ist (Vorgabe:Python).
3.1.11. Optionen für das Cross-Kompilieren¶
Mit Cross-Kompilieren, auch Cross-Bauen genannt, lässt sich Python für eine andere CPU-Architektur oder Plattform bauen. Cross-Kompilieren setzt einen Python-Interpreter für die Bauplattform voraus. Die Version des bauenden Python muss zur Version des cross-kompilierten Ziel-Python passen.
- --build=BUILD¶
konfiguriert für das Bauen auf BUILD, wird üblicherweise von config.guess erraten.
- --host=HOST¶
cross-kompiliert, um Programme zu bauen, die auf HOST (der Zielplattform) laufen
- --with-build-python=path/to/python¶
Pfad zur ausführbaren
python-Datei des Builds für das Cross-KompilierenNeu in Version 3.11.
- CONFIG_SITE=file¶
Eine Umgebungsvariable, die auf eine Datei mit Überschreibungen für configure verweist.
Beispiel für eine Datei config.site:
# config.site-aarch64 ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no
Beispiel für Cross-Kompilieren:
CONFIG_SITE=config.site-aarch64 ../configure \
--build=x86_64-pc-linux-gnu \
--host=aarch64-unknown-linux-gnu \
--with-build-python=../x86_64/python
3.2. Das Bausystem von Python¶
3.2.1. Die wichtigsten Dateien des Bausystems¶
configure.ac=>configure;Makefile.pre.in=>Makefile(vonconfigureerzeugt);pyconfig.h(vonconfigureerzeugt);Modules/Setup: C-Erweiterungen, die das Makefile mit dem Shell-SkriptModule/makesetupbaut;setup.py: C extensions built using thedistutilsmodule.
3.2.2. Die wichtigsten Bauschritte¶
C-Dateien (
.c) werden zu Objektdateien (.o) gebaut.Aus den Objektdateien wird eine statische
libpython-Bibliothek (.a) erzeugt.python.ound die statischelibpython-Bibliothek werden zum endgültigen Programmpythongelinkt.C extensions are built by the Makefile (see
Modules/Setup) andpython setup.py build.
3.2.3. Die wichtigsten Makefile-Ziele¶
make: Build Python with the standard library.make platform:: build thepythonprogram, but don’t build the standard library extension modules.make profile-opt: build Python using Profile Guided Optimization (PGO). You can use the configure--enable-optimizationsoption to make this the default target of themakecommand (make allor justmake).make buildbottest: Build Python and run the Python test suite, the same way than buildbots test Python. SetTESTTIMEOUTvariable (in seconds) to change the test timeout (1200 by default: 20 minutes).make install: Build and install Python.make regen-all: Regenerate (almost) all generated files;make regen-stdlib-module-namesandautoconfmust be run separately for the remaining generated files.make clean: Remove built files.make distclean: Same thanmake clean, but remove also files created by the configure script.
3.2.4. C-Erweiterungen¶
Einige C-Erweiterungen werden als integrierte Module gebaut, etwa das Modul sys. Sie werden mit definiertem Makro Py_BUILD_CORE_BUILTIN gebaut. Integrierte Module haben kein Attribut __file__:
>>> import sys
>>> sys
<module 'sys' (built-in)>
>>> sys.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'sys' has no attribute '__file__'
Andere C-Erweiterungen werden als dynamische Bibliotheken gebaut, etwa das Modul _asyncio. Sie werden mit definiertem Makro Py_BUILD_CORE_MODULE gebaut. Beispiel unter Linux x86-64:
>>> import _asyncio
>>> _asyncio
<module '_asyncio' from '/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'>
>>> _asyncio.__file__
'/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'
Modules/Setup dient dazu, Makefile-Ziele zum Bauen der C-Erweiterungen zu erzeugen. Am Anfang der Datei werden C-Erweiterungen als integrierte Module gebaut. Erweiterungen, die nach der Marke *shared* definiert sind, werden als dynamische Bibliotheken gebaut.
The setup.py script only builds C extensions as shared libraries using
the distutils module.
The PyAPI_FUNC(), PyAPI_DATA() and
PyMODINIT_FUNC macros of Include/pyport.h are defined
differently depending if the Py_BUILD_CORE_MODULE macro is defined:
Verwendet
Py_EXPORTED_SYMBOL, wennPy_BUILD_CORE_MODULEdefiniert istVerwendet andernfalls
Py_IMPORTED_SYMBOL.
Wird das Makro Py_BUILD_CORE_BUILTIN versehentlich bei einer C-Erweiterung verwendet, die als gemeinsam genutzte Bibliothek gebaut wird, wird deren Funktion PyInit_xxx() nicht exportiert, was beim Import einen ImportError auslöst.
3.3. Compiler- und Linker-Flags¶
Optionen, die das Skript ./configure und Umgebungsvariablen setzen und die das Makefile verwendet.
3.3.1. Flags des Präprozessors¶
- CONFIGURE_CPPFLAGS¶
Wert der Variablen
CPPFLAGS, der an das Skript./configureübergeben wird.Neu in Version 3.6.
- CPPFLAGS¶
Flags des (Objective-)C/C++-Präprozessors, etwa
-Iinclude_dir, wenn deine Headerdateien in einem nicht standardmäßigen Verzeichnis include_dir liegen.Both
CPPFLAGSandLDFLAGSneed to contain the shell’s value for setup.py to be able to build extension modules using the directories specified in the environment variables.
- BASECPPFLAGS¶
Neu in Version 3.4.
- PY_CPPFLAGS¶
Zusätzliche Präprozessor-Flags, die beim Bauen der Objektdateien des Interpreters hinzugefügt werden.
Vorgabe:
$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS).Neu in Version 3.2.
3.3.2. Compiler-Flags¶
- CC¶
Befehl des C-Compilers.
Beispiel:
gcc -pthread.
- MAINCC¶
C compiler command used to build the
main()function of programs likepython.Variable set by the
--with-cxx-mainoption of the configure script.Default:
$(CC).
- CXX¶
Befehl des C++-Compilers.
Used if the
--with-cxx-mainoption is used.Beispiel:
g++ -pthread.
- CFLAGS¶
Flags des C-Compilers.
- CFLAGS_NODIST¶
CFLAGS_NODISTis used for building the interpreter and stdlib C extensions. Use it when a compiler flag should not be part of the distutilsCFLAGSonce Python is installed (bpo-21121).Insbesondere sollte
CFLAGSnicht enthalten:das Compiler-Flag
-I(das den Suchpfad für Include-Dateien setzt). Die-I-Flags werden von links nach rechts verarbeitet, Flags inCFLAGShätten daher Vorrang vor-I-Flags, die Benutzer oder Pakete mitgeben.Härtungsflags wie
-Werror, weil Distributionen nicht steuern können, ob von Benutzern installierte Pakete solchen verschärften Maßstäben entsprechen.
Neu in Version 3.5.
- EXTRA_CFLAGS¶
Zusätzliche Flags für den C-Compiler.
- CONFIGURE_CFLAGS¶
Wert der Variablen
CFLAGS, der an das Skript./configureübergeben wird.Neu in Version 3.2.
- CONFIGURE_CFLAGS_NODIST¶
Wert der Variablen
CFLAGS_NODIST, der an das Skript./configureübergeben wird.Neu in Version 3.5.
- BASECFLAGS¶
Grundlegende Compiler-Flags.
- OPT¶
Optimierungsflags.
- CFLAGS_ALIASING¶
Flags für strenges oder nicht strenges Aliasing, mit denen
Python/dtoa.ckompiliert wird.Neu in Version 3.7.
- CCSHARED¶
Compiler-Flags zum Bauen einer gemeinsam genutzten Bibliothek.
Unter Linux und BSD wird zum Beispiel
-fPICverwendet.
- CFLAGSFORSHARED¶
Zusätzliche C-Flags, die beim Bauen der Objektdateien des Interpreters hinzugefügt werden.
Vorgabe:
$(CCSHARED), wenn--enable-sharedverwendet wird, andernfalls eine leere Zeichenkette.
- PY_CFLAGS¶
Vorgabe:
$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS).
- PY_CFLAGS_NODIST¶
Vorgabe:
$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal.Neu in Version 3.5.
- PY_STDMODULE_CFLAGS¶
C-Flags, mit denen die Objektdateien des Interpreters gebaut werden.
Vorgabe:
$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED).Neu in Version 3.7.
- PY_CORE_CFLAGS¶
Vorgabe:
$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE.Neu in Version 3.2.
- PY_BUILTIN_MODULE_CFLAGS¶
Compiler-Flags, um ein Erweiterungsmodul der Standardbibliothek als integriertes Modul zu bauen, etwa das Modul
posix.Vorgabe:
$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN.Neu in Version 3.8.
- PURIFY¶
Befehl für Purify. Purify ist ein Programm zur Speicherfehlersuche.
Vorgabe: leere Zeichenkette (nicht verwendet).
3.3.3. Linker-Flags¶
- LINKCC¶
Linker-Befehl, mit dem Programme wie
pythonund_testembedgebaut werden.Default:
$(PURIFY) $(MAINCC).
- CONFIGURE_LDFLAGS¶
Wert der Variablen
LDFLAGS, der an das Skript./configureübergeben wird.Vermeide es,
CFLAGS,LDFLAGSund so weiter zuzuweisen, damit Benutzer sie auf der Befehlszeile verwenden können, um etwas an diese Werte anzuhängen, ohne die vorbelegten Werte zu zertreten.Neu in Version 3.2.
- LDFLAGS_NODIST¶
LDFLAGS_NODISTis used in the same manner asCFLAGS_NODIST. Use it when a linker flag should not be part of the distutilsLDFLAGSonce Python is installed (bpo-35257).Insbesondere sollte
LDFLAGSnicht enthalten:das Compiler-Flag
-L(das den Suchpfad für Bibliotheken setzt). Die-L-Flags werden von links nach rechts verarbeitet, Flags inLDFLAGShätten daher Vorrang vor-L-Flags, die Benutzer oder Pakete mitgeben.
- CONFIGURE_LDFLAGS_NODIST¶
Wert der Variablen
LDFLAGS_NODIST, der an das Skript./configureübergeben wird.Neu in Version 3.8.
- LDFLAGS¶
Linker-Flags, etwa
-Llib_dir, wenn deine Bibliotheken in einem nicht standardmäßigen Verzeichnis lib_dir liegen.Both
CPPFLAGSandLDFLAGSneed to contain the shell’s value for setup.py to be able to build extension modules using the directories specified in the environment variables.
- LIBS¶
Linker-Flags, um dem Linker beim Linken der ausführbaren Python-Datei Bibliotheken zu übergeben.
Beispiel:
-lrt.
- LDSHARED¶
Befehl zum Bauen einer gemeinsam genutzten Bibliothek.
Vorgabe:
@LDSHARED@ $(PY_LDFLAGS).
- BLDSHARED¶
Befehl zum Bauen der gemeinsam genutzten Bibliothek
libpython.Vorgabe:
@BLDSHARED@ $(PY_CORE_LDFLAGS).
- PY_LDFLAGS¶
Vorgabe:
$(CONFIGURE_LDFLAGS) $(LDFLAGS).
- PY_LDFLAGS_NODIST¶
Vorgabe:
$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST).Neu in Version 3.8.
- PY_CORE_LDFLAGS¶
Linker-Flags, mit denen die Objektdateien des Interpreters gebaut werden.
Neu in Version 3.8.