Zugang zu USB über Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Toni83, bevor Du Dich fragst, wo der Code bleibt: ich hab erst jetzt am Wochenende wirklich Zeit gefunden mich dranzusetzen; ich werd schauen, dass ich morgen mittag mal ein kleines Beispielscript poste, was die Funktionalität deines Benutzungsskriptes dupliziert. Solange bitte noch gedulden, ich habs nicht vergessen. ;-)
--- Heiko.
Benutzeravatar
Toni83
User
Beiträge: 125
Registriert: Donnerstag 28. Juli 2005, 10:53

Ich schätze mal, dass modelnine leider keine Zeit findet um eine Beispielsource zu senden. Habe jetzt SWIG installiert. Habe ein einfacheres Programm geschrieben, es funktioniert aber leider nicht...
Warum? weiss ich auch nicht!

Code:

example.c:

Code: Alles auswählen

/* File : example.c */

#include <time.h>
double My_variable = 3.0;

int fact (int n) {
	if (n <= 1) return 1;
	else return n*fact(n-1);
}

int my_mod(int x, int y) {
	return (x%y);
}

char *get_time()
{
	time_t ltime;
	time(&ltime);
	return ctime(&ltime);
}
example.i:

Code: Alles auswählen

/* example.i */
%module example
%{
/* Put header files here or function declarations like below */
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
%}

extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
Bin dann auf der Eingabeaufforderung fortgefahren:

swig -python -c++ example.i
c++ -c example.c -I/usr/local/include/python2.3
c++ -shared example.o -o _example.so

Nachdem sollte mit import example die ursprüngliche C-Source in Python vorhanden sein. Stattdessen kommt die Fehlermeldung:

Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "example.py", line 5, in ?
import _example
ImportError: No module named _example

Kann mir jemand das bitte erklären?

Gruss,
Toni
Benutzeravatar
Toni83
User
Beiträge: 125
Registriert: Donnerstag 28. Juli 2005, 10:53

Habe jetzt die ganze letzte Zeit mit dem wrappen zugebracht. Leider ohne Erfolg. Scheint aus meiner Sicht irgendwie nicht möglich meinen Code zu wrappen.
Habe dann daraufhin eine .dll aus meiner C-Datei mit VC++ 6.0 erstellt und diese dann mit ctypes aus Python heraus aufgerufen. Geht ganz schnell und unkompliziert im Gegensatz zum wrappen.
Falls es jemanden interessiert wie dies geht, dem kann ich das vorgehen dann an dieser Stelle posten.

Gruss,
Toni
Antworten