Python modules and CSS(Control System Studio)

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

Hi, ich arbeite momentan mit CSS(Control System Studio), einem, auf eclipse basierenden, Programm. Mit CSS ist es moeglich eine .opi-Datei (ein GUI interface) zu erstellen und dieses mit einem code zu vernetzen, welcher das output computet und dann in dem interface ausgibt. Soweit so gut. Jedoch moechte ich nun auch Python-module verwenden, welche nicht in dem Python eingebunden sind, denen sich CSS bedient. Das gute ist jedoch, dass CSS faehig ist die Dateien, die im gleichen Folder gespeichert sind einzulesen (daher es kann sie mit import numpy einlesen). Insofern brauechte ich nur die "Quelldateinen", also sowas wie numpy.py, das eingelesen wird.
Wenn ich nun aber google, finde ich immer nur grosse Folder ohne der Quelldatei.. Exisistieren auch nur einzelne Dateien in denen matplotlib, numpy und scipy enthalten sind, sodass ich sie integrieren kann.
Entschuldigt vielmals, aber ich bin ein Programmierneuling und die grossen Zusammenhaenge nur duerftig.
Vielen Dank im Vorraus- falls etwas unklar ist, bitte fragt!
Alles Liebe,
Peter
BlackJack

@peter99: Weder `numpy` noch `matplotlib` ist eine einzelne Datei. Das sind Pakete die aus vielen Python-Dateien bestehen — und auch Erweiterungsmodulen die in C geschrieben sind (oder auch anderen Programmiersprachen). Da reicht es nicht die Dateien von irgendwoher zu nehmen und irgendwo hin zu kopieren, die müssen schon zu dem Python passen, also speziell dafür übersetzt worden sein, in dem sie benutzt werden sollen.
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

Vielen Dank! Soweit ich weiss benuetzt CSS Python 2.7. Worueber ich auch nachgedacht habe: Da numpy ein gesamtes package ist und ich nur einen Teil brauch: wo finde ich die entsprechende benoetigten Codesegmente in dem Buendel an Dateien, die ich brauechte um es ohne packages laufen zu lassen?
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@peter99: Installier den Kram so, wie es sich gehört. Du weißt ja nicht, welche Teile intern voneinander abhängig sind. Ich verstehe auch gar nicht, welches Problem du damit hast, ganze Pakete zu installieren.
In specifications, Murphy's Law supersedes Ohm's.
BlackJack

@peter99: Vielleicht solltest Du erst einmal lernen wie Quelltext in Python in Module und Packages organisiert wird, bevor Du versuchst sowas auseinanderpflücken zu wollen. Das macht überhaupt keinen Sinn.

Kannst Du den Python-Interpreter unabhängig von CSS starten? Dann könntest Du `numpy` ”einfach” auf dem üblichen Weg installieren. Wie einfach — oder schwierig — das letztendlich wird, hängt von verschiedenen Faktoren ab. Wenn man es aus den Quellen installiert, dann muss man einiges an Entwicklerwerkzeugen und Bibliotheken installiert haben. Ansonsten müsstest Du schauen ob Du irgendwie fertige Pakete/Installer (nicht Python-Packages sondern Pakete für Deine Distribution) bekommst.
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

Nein, in CSS ist Python integriert und das Python von dem CSS abhaengig ist, kann ich nicht unabhaengig starten und etwas draufinstallieren, das ist mein Problem:(
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Numpy stellst Du Dir am besten als eine C-Bibliothek mit Python-Schnittstelle vor. Scipy ist sogar eher sowas wie eine Fortran-Bilbliothek mit Python-Schnittstelle und sogar bei Matplotlib sind wesentliche Teile in C implementiert (z.B. Kantenglättung oder LaTeX Support). Wenn Du davon nur Teile haben willst, dann heißt das auch, dass Du in die C- und Fortran-Kompilierung rein musst, ich glaube nicht, dass Du das wirklich möchtest.

Warum installierst Du nicht Numpy, Scipy und Matplotlib in das von CSS benutzte Python rein?

Bringt CSS wirklich sein eigenes Python mit oder gibt es nicht auch die Möglichkeit ein lokal schon installiertes Python zu nutzen? PyDev (basiert auch auf Eclipse) macht es z.B. so.
a fool with a tool is still a fool, www.magben.de, YouTube
BlackJack

@peter99: Wenn CSS wie im anderen Thema angedeutet tatsächlich Jython verwendet, kannst Du `numpy` damit nicht verwenden. Jython bietet nicht die C-API gegen die `numpy`\s in C geschriebenen Erweiterungsmodule geschrieben sind. Es bietet gar keine eigene C-API. Da würde es wahrscheinlich mehr Sinn machen sich eine entsprechende Java-Bibliothek zu suchen und die von Jython aus zu verwenden.
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@peter99: Du könntest auch mal JyNI ausprobieren. Ist halt noch eine alpha-Version.

http://jyni.org/
In specifications, Murphy's Law supersedes Ohm's.
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

Vielen Dank! Jyni ist leider noch nicht so weit:(( Ich habe diesen post gefunden
http://stackoverflow.com/questions/1945 ... ith-jython und mir anschliessend das durchgelesen:
https://code.google.com/p/jsonrpclib/
aber ueberhaupt nicht verstanden- es uebersteigt meine Programmierkenntnisse.
Hat jemand von euch Erfahrung damit und koennte mir vl kurz erklaeren wie mir das genau helfen soll Pythonmodule in CSS zu verwenden?
dh wie ich nun zB matplotlib importieren kann
BlackJack

@peter99: Die Lösung die jemand auf Stackoverflow vorgeschlagen hat basiert darauf das man `jsonrpclib` verwendet und einen Server in CPython schreibt der Funktionen zur Verfügung stellt die dann `numpy` & Co verwenden können. Das kann man dann von Jython verwenden in dem man JSON-RPC-Aufrufe an diesen Server macht. Das macht allerdings nur Sinn wenn die Datenmenge die zwischen den beiden Programmen über diese Schnittstelle ausgetauscht werden, klein sind.
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

Vielen Dank!! Ich muss gestehen, dass ich mich mit Servern uerbahaupt nicht auskenne: ich wuerde jedoch geren diese Funktionalitaet fuer mein Programm verwenden- hat jemand von euch schon mal etwas Aehnliches getan und koennte den Code zur Verfuegung stellen?
Beste Gruesse,
Peter
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Man könnte auch den Weg nehmen, den man bei PyPy wohl für einige Sache nimmt: CPython über ctypes embedden und in dem Interpreter den Code der mit numpy etc. interagiert ausführen. Da dürfte der Overhead im Vergleich zur RPC Lösung auch ein ganzes Stück kleiner sein.
Antworten