1 svar
54 visningar

Vad betyder "(...) is a C++ library distributed as a python package"?

Vad är skillnaden mellan en library och en package och vad betyder verbet att "distribute" i detta sammanhang?

Laguna 28663
Postad: 6 feb 2023 16:44

Om du skriver några trevliga funktioner i C som du vill samla ihop så att man kan använda dem i vilket C-program som helst, så kompilerar du först C-filerna och får objektfiler, med suffixet .o, lägger dessa sedan i en enda fil med suffixet .a (a står för archive och man använder programmet ar). Detta är ett library. a-filens namn brukar börja på "lib" också.

Har man nu ett nytt program som använder en funktion i biblioteket (jag använder svenska nu) så måste man göra funktionens kod tillgänglig när man bygger programmet. Man länkar ihop det av sina egna o-filer, plus den där a-filen.

Kommandoraden kan i enkla fall se ut så här: cc -o myprogram myprogram.c libnicefunctions.a

I Python kan man vilja skriva trevliga funktioner och göra dem tillgängliga för andra program. Man lägger då ihop Python-filerna i nånting som kallas package, som är en enda fil som kan packas upp och installeras enkelt, t.ex. med programmet pip. Eftersom man kan anropa programkod skriven i andra språk, t.ex. C, från Python, så kan sådan kod också ingå i paketet.

Distribuera betyder bara skicka iväg, göra tillgänglig för andra, t.ex. lägga på någon allmänt känd plats så att paketet är lätt att hämta.

Ordet package används i många sammanhang, ibland på samma sätt som i Python, ibland annorlunda. Det är ju ett praktiskt ord. Library används nog också på fler sätt än det här.

Windows-utvecklare kanske inte känner igen sig helt i min beskrivning - ni får formulera processen på ert sätt.

Svara Avbryt
Close