Importera moduler¶
-
PyObject *PyImport_ImportModule(const char *name)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Detta är ett omslag runt
PyImport_Import()som tar en const char* som argument istället för en PyObject*.
-
PyObject *PyImport_ImportModuleNoBlock(const char *name)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Denna funktion är ett föråldrat alias för
PyImport_ImportModule().Ändrad i version 3.3: Denna funktion brukade misslyckas omedelbart när importlåset hölls av en annan tråd. I Python 3.3 övergick dock låsningssystemet till per-modul-lås för de flesta ändamål, så den här funktionens speciella beteende behövs inte längre.
Deprecated since version 3.13, will be removed in version 3.15: Använd
PyImport_ImportModule()istället.
-
PyObject *PyImport_ImportModuleEx(const char *name, PyObject *globals, PyObject *locals, PyObject *fromlist)¶
- Returnera värde: Ny referens.
Importera en modul. Detta beskrivs bäst genom att hänvisa till den inbyggda Python-funktionen
__import__().Returvärdet är en ny referens till den importerade modulen eller paketet på högsta nivån, eller
NULLmed en undantagsuppsättning vid misslyckande. Precis som för__import__()är returvärdet när en undermodul av ett paket begärdes normalt paketet på högsta nivån, såvida inte en icke-tom fromlist gavs.Felaktig import tar bort ofullständiga modulobjekt, som med
PyImport_ImportModule().
-
PyObject *PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals, PyObject *locals, PyObject *fromlist, int level)¶
- Returnera värde: Ny referens. En del av Stabil ABI sedan version 3.7.
Importera en modul. Detta beskrivs bäst genom att hänvisa till den inbyggda Python-funktionen
__import__(), eftersom standardfunktionen__import__()anropar denna funktion direkt.Returvärdet är en ny referens till den importerade modulen eller paketet på högsta nivån, eller
NULLmed en undantagsuppsättning vid misslyckande. Precis som för__import__()är returvärdet när en undermodul av ett paket begärdes normalt paketet på högsta nivån, såvida inte en icke-tom fromlist gavs.Tillagd i version 3.3.
-
PyObject *PyImport_ImportModuleLevel(const char *name, PyObject *globals, PyObject *locals, PyObject *fromlist, int level)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Liknar
PyImport_ImportModuleLevelObject(), men namnet är en UTF-8-kodad sträng i stället för ett Unicode-objekt.Ändrad i version 3.3: Negativa värden för level accepteras inte längre.
-
PyObject *PyImport_Import(PyObject *name)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Detta är ett gränssnitt på högre nivå som anropar den aktuella ”importkrokfunktionen” (med en explicit nivå på 0, vilket innebär absolut import). Den anropar
__import__()-funktionen från__builtins__i de aktuella globalerna. Detta innebär att importen görs med hjälp av de import-hooks som finns installerade i den aktuella miljön.Denna funktion använder alltid absolut import.
-
PyObject *PyImport_ReloadModule(PyObject *m)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Ladda om en modul. Returnerar en ny referens till den omladdade modulen, eller
NULLmed ett undantag om den misslyckas (modulen finns fortfarande i det här fallet).
-
PyObject *PyImport_AddModuleRef(const char *name)¶
- Returnera värde: Ny referens. En del av Stabil ABI sedan version 3.13.
Returnerar det modulobjekt som motsvarar ett modulnamn.
Argumentet namn kan vara av formen
package.module. Kontrollera först i modulordlistan om det finns någon där, och om inte, skapa en ny och infoga den i modulordlistan.Returnerar en strong reference till modulen vid framgång. Returnerar
NULLmed en undantagsuppsättning vid misslyckande.Modulnamnet name avkodas från UTF-8.
Den här funktionen laddar eller importerar inte modulen; om modulen inte redan var laddad får du ett tomt modulobjekt. Använd
PyImport_ImportModule()eller en av dess varianter för att importera en modul. Paketstrukturer som impliceras av ett prickat namn för namn skapas inte om de inte redan finns.Tillagd i version 3.13.
-
PyObject *PyImport_AddModuleObject(PyObject *name)¶
- Returnera värde: Lånad referens. En del av Stabil ABI sedan version 3.7.
Liknar
PyImport_AddModuleRef(), men returnerar en lånad referens och namn är ett Pythonstr-objekt.Tillagd i version 3.3.
-
PyObject *PyImport_AddModule(const char *name)¶
- Returnera värde: Lånad referens. En del av Stabil ABI.
Liknar
PyImport_AddModuleRef(), men returnerar en lånad referens.
-
PyObject *PyImport_ExecCodeModule(const char *name, PyObject *co)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Med ett modulnamn (eventuellt av formen
package.module) och ett kodobjekt läst från en Python-bytecode-fil eller erhållet från den inbyggda funktionencompile(), laddar modulen. Returnerar en ny referens till modulobjektet, ellerNULLmed en undantagsuppsättning om ett fel inträffade. name tas bort frånsys.modulesi felfall, även om name redan fanns isys.modulesvid inmatningen tillPyImport_ExecCodeModule(). Att lämna ofullständigt initialiserade moduler isys.modulesär farligt, eftersom import av sådana moduler inte har något sätt att veta att modulobjektet är ett okänt (och förmodligen skadat med avseende på modulförfattarens avsikter) tillstånd.Modulens
__spec__och__loader__sätts, om de inte redan är satta, med lämpliga värden. Specs laddare kommer att sättas till modulens__loader__(om den är satt) och annars till en instans avSourceFileLoader.Modulens attribut
__file__kommer att sättas till kodobjektetsco_filename. Om tillämpligt kommer även__cached__att sättas.Denna funktion kommer att ladda om modulen om den redan importerats. Se
PyImport_ReloadModule()för det avsedda sättet att ladda om en modul.Om name pekar på ett prickat namn av formen
package.modulekommer alla paketstrukturer som inte redan har skapats ändå inte att skapas.Se även
PyImport_ExecCodeModuleEx()ochPyImport_ExecCodeModuleWithPathnames().Ändrad i version 3.12: Inställningen av
__cached__och__loader__är föråldrad. SeModuleSpecför alternativ.
-
PyObject *PyImport_ExecCodeModuleEx(const char *name, PyObject *co, const char *pathname)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Som
PyImport_ExecCodeModule(), men attributet__file__i modulobjektet sätts till pathname om det inte ärNULL.
-
PyObject *PyImport_ExecCodeModuleObject(PyObject *name, PyObject *co, PyObject *pathname, PyObject *cpathname)¶
- Returnera värde: Ny referens. En del av Stabil ABI sedan version 3.7.
Som
PyImport_ExecCodeModuleEx(), men attributet__cached__i modulobjektet sätts till cpathname om det inte ärNULL. Av de tre funktionerna är denna att föredra att använda.Tillagd i version 3.3.
Ändrad i version 3.12: Inställningen
__cached__är föråldrad. SeModuleSpecför alternativ.
-
PyObject *PyImport_ExecCodeModuleWithPathnames(const char *name, PyObject *co, const char *pathname, const char *cpathname)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Som
PyImport_ExecCodeModuleObject(), men name, pathname och cpathname är UTF-8-kodade strängar. Försök görs också att räkna ut vad värdet för pathname ska vara från cpathname om det förra är satt tillNULL.Tillagd i version 3.2.
Ändrad i version 3.3: Använder
imp.source_from_cache()vid beräkning av källsökvägen om endast bytecode-sökvägen anges.Ändrad i version 3.12: Använder inte längre den borttagna modulen
imp.
-
long PyImport_GetMagicNumber()¶
- En del av Stabil ABI.
Returnerar det magiska numret för Python-bytekodfiler (även känd som
.pyc-fil). Det magiska numret bör finnas i de första fyra byte i bytecode-filen, i little-endian byte-ordning. Returnerar\-1vid fel.Ändrad i version 3.3: Returnerar värdet
\-1vid fel.
-
const char *PyImport_GetMagicTag()¶
- En del av Stabil ABI.
Returnerar den magiska taggsträngen för filnamn i Python-bytekod i formatet PEP 3147. Tänk på att värdet i
sys.implementation.cache_tagär auktoritativt och bör användas i stället för denna funktion.Tillagd i version 3.2.
-
PyObject *PyImport_GetModuleDict()¶
- Returnera värde: Lånad referens. En del av Stabil ABI.
Returnerar den ordbok som används för moduladministration (även kallad
sys.modules). Observera att detta är en variabel för varje tolk.
-
PyObject *PyImport_GetModule(PyObject *name)¶
- Returnera värde: Ny referens. En del av Stabil ABI sedan version 3.8.
Returnerar den redan importerade modulen med det angivna namnet. Om modulen inte har importerats ännu returneras
NULLmen inget felmeddelande anges. ReturnerarNULLoch anger ett fel om uppslagningen misslyckades.Tillagd i version 3.7.
-
PyObject *PyImport_GetImporter(PyObject *path)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar ett sökobjekt för ett
sys.path/pkg.__path__-objekt path, eventuellt genom att hämta det frånsys.path_importer_cachedict. Om det ännu inte var cachat, traverserasys.path_hookstills en hook hittas som kan hantera sökvägsobjektet. ReturneraNoneom ingen hook kan; detta talar om för vår anropare att path based finder inte kunde hitta någon sökare för detta sökvägsobjekt. Cacha resultatet isys.path_importer_cache. Returnera en ny referens till sökobjektet.
-
int PyImport_ImportFrozenModuleObject(PyObject *name)¶
- En del av Stabil ABI sedan version 3.7.
Laddar en fryst modul med namnet namn. Returnerar
1om det lyckas,0om modulen inte hittas och\-1med ett undantag om initialiseringen misslyckades. För att komma åt den importerade modulen vid en lyckad laddning, användPyImport_ImportModule(). (Notera den felaktiga benämningen — denna funktion skulle ladda om modulen om den redan var importerad)Tillagd i version 3.3.
Ändrad i version 3.4: Attributet
__file__är inte längre inställt på modulen.
-
int PyImport_ImportFrozenModule(const char *name)¶
- En del av Stabil ABI.
Liknar
PyImport_ImportFrozenModuleObject(), men namnet är en UTF-8-kodad sträng i stället för ett Unicode-objekt.
-
struct _frozen¶
Detta är strukturtypdefinitionen för frysta modulbeskrivare, som genereras av freeze-verktyget (se
Tools/freeze/i Python-källdistributionen). Dess definition, som finns iInclude/import.h, är:struct _frozen { const char *namn; konst osignerad char *code; int storlek; bool is_package; };
Ändrad i version 3.11: Det nya fältet
is_packageanger om modulen är ett paket eller inte. Detta ersätter inställningen av fältetsizetill ett negativt värde.
-
const struct _frozen *PyImport_FrozenModules¶
Denna pekare initialiseras så att den pekar på en array av
_frozen-poster, som avslutas med en post vars alla medlemmar ärNULLeller noll. När en fryst modul importeras söks den i den här tabellen. Tredjepartskod kan använda detta för att skapa en dynamiskt skapad samling av frysta moduler.
-
int PyImport_AppendInittab(const char *name, PyObject *(*initfunc)(void))¶
- En del av Stabil ABI.
Lägg till en enda modul i den befintliga tabellen över inbyggda moduler. Detta är en bekväm omslutning kring
PyImport_ExtendInittab(), som returnerar\-1om tabellen inte kunde utökas. Den nya modulen kan importeras med namnet name och använder funktionen initfunc som initialiseringsfunktion vid det första importförsöket. Denna bör anropas förePy_Initialize().
-
struct _inittab¶
Struktur som beskriver en enda post i listan över inbyggda moduler. Program som bygger in Python kan använda en array av dessa strukturer tillsammans med
PyImport_ExtendInittab()för att tillhandahålla ytterligare inbyggda moduler. Strukturen består av två medlemmar:-
const char *name¶
Modulens namn, som en ASCII-kodad sträng.
-
const char *name¶
-
int PyImport_ExtendInittab(struct _inittab *newtab)¶
Lägger till en samling moduler i tabellen över inbyggda moduler. Arrayen newtab måste sluta med en sentinel-post som innehåller
NULLför fältetname; om sentinel-värdet inte anges kan det resultera i ett minnesfel. Returnerar0vid framgång eller\-1om otillräckligt minne kunde allokeras för att utöka den interna tabellen. Vid misslyckande läggs inga moduler till i den interna tabellen. Detta måste anropas förePy_Initialize().Om Python initialiseras flera gånger måste
PyImport_AppendInittab()ellerPyImport_ExtendInittab()anropas före varje Python-initialisering.
-
PyObject *PyImport_ImportModuleAttr(PyObject *mod_name, PyObject *attr_name)¶
- Returnera värde: Ny referens.
Importera modulen mod_name och hämta dess attribut attr_name.
Namnen måste vara Python
str-objekt.Hjälpfunktion som kombinerar
PyImport_Import()ochPyObject_GetAttr(). Den kan till exempel ge upphov tillImportErrorom modulen inte hittas ochAttributeErrorom attributet inte finns.Tillagd i version 3.14.
-
PyObject *PyImport_ImportModuleAttrString(const char *mod_name, const char *attr_name)¶
- Returnera värde: Ny referens.
Liknar
PyImport_ImportModuleAttr(), men namnen är UTF-8-kodade strängar istället för Pythonstr-objekt.Tillagd i version 3.14.