kostenloser Webspace werbefrei: lima-city


C Bilbliotheken/Funktionen in Python verwenden?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    Mit dem Modul CTypes soll man in Python ja C Bibliotheken einbinden können. Aber wie mach ich das mit selbst geschriebenen Libs?

    Z.B. wie verwende ich diesen Code, kompiliert zu einer .o Datei in Python?
    int func() {
    	return 1;
    }
    
    int main() {
    	return 0;
    }


    Mit
    cdll.LoadLibrary("/home/kristian/Desktop/test.o")

    bekomm ich nur den Fehler:
    OSError: /home/kristian/Desktop/test.o: cannot dynamically load executable
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Versuche mal einen einfachen import, das Bibliotheksmodul wird dann nur mit dem Dateinamen angegeben und muss natürlich im Modulsuchpfad liegen.

    Im Falle von test.so also:

    import test
    Aufgerufen werden die Funktionen dann wie Funktionen in ganz normalen Pythonmodulen auch nach dem Muster modul.attribut:

    import test
    test.main()


    Beitrag zuletzt geändert: 19.8.2010 11:00:57 von fatfox
  4. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    fatfox schrieb:
    Versuche mal einen einfachen import, das Bibliotheksmodul wird dann nur mit dem Dateinamen angegeben und muss natürlich im Modulsuchpfad liegen.

    Im Falle von test.so also:

    import test
    Aufgerufen werden die Funktionen dann wie Funktionen in ganz normalen Pythonmodulen auch nach dem Muster modul.attribut:

    import test
    test.main()


    Der gleiche Fehler:
    ImportError: ./test.so: cannot dynamically load executable
  5. krisi12345 schrieb:
    Z.B. wie verwende ich diesen Code, kompiliert zu einer .o Datei in Python?

    Wenn du unter Linux bist, brauchst du eine .so und keine .o Datei.

    Ich nehme an, du gehst das galileo-Computing Tutorial durch. Ich empfehle eher hier die offizielle Python Doku zu verwenden, denn Galileo ist - wenn ich mich recht entsinne - nicht ausführlich genug, was den C/C++ Part angeht. Und es gibt doch einiges was man beachten muss. Außerdem ist es deutlich angenehmer das ganze unter Linux mit distutils zu compilieren.
    http://docs.python.org/extending/extending.html#compilation-and-linkage
    http://docs.python.org/extending/building.html#building
    http://docs.python.org/c-api/

    Die cdll-Bibilothek ist afaik nur für Windows-dlls geeignet.

    Beitrag zuletzt geändert: 24.8.2010 18:18:52 von bladehunter
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!