Funktionsbibliothek auslagern cimpilen ?!?

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.
Antworten
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

Hallo erstmal,
ich haben eine Python-Skript, welches mitells ssh (paramiko-bibliothek) sich auf einem server einloggt und daten zieht.

das skript soll nun auf mehreren maschinen genutzt werden.
gibts da eine möglichekit das skript zu compilen oder ähnliches, um es letztendlich auch zu nutzten ohne auf jeder maschine paramiko zu installieren ?

danke schon mal und gruß
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Hey bob1704 und willkommen im Forum,

so weit ich weiß wird (bei mir !) wenn ich das skript ausführe im gleichen ordner eine .pyc erstellt, also das ganze im bytecode, was dafür sorgt das die skripte schneller starten und der gleichen, auch wenn es kein wirklichen unterschied macht zu der normalen Python datei .py .

Naja zu dem Thema Libs weiß ich nicht 100% bescheid aber ich habe bis jetzt immer die ganzen Libs die das Programm oder Skript braucht auf denn anderen System mit installiert und ich denke das geht auch nicht anders, wäre aber gut wenn sich jemand dazu noch mal melden könnte der mehr Erfahrung hat.

mfg Manchotix
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
BlackJack

@bob1704: Ganz grob gesagt nein, das geht nicht. Du könntest aber einen Installer verwenden der Python, Dein Programm, und dessen verwendete Bibliotheken enthält und installiert.
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

Guten Morgen,
und erstmal danke für die Antworten.
Ist es möglich zumindest nur die von paramiko benötigten Funktionen in eine *.pyc datei auszulagern sodass man letztenldich ein bis zwei weietere Daeien hat?

Oder ist wirklich die einzige Möglichkeit auf jeder Maschine paramiko zu installieren?

Gruß
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Je nach Betriebssystem gibt es unterschiedlich sinnvolle Herangehensweisen. Um welches System (oder Systeme) geht es denn?
BlackJack

@bob1704: Man braucht letztendlich zum Ausführen mindestens die Bytecode-Dateien, die nativen Bibliotheken für das Zielsystem und einen Python-Interpreter + mindestens die verwendeten Teile der Standardbibliothek. Es gibt Ansätze die versuchen diese Tatsachen zu verstecken, aber ich verstehe nicht so ganz was das soll. Wenn man dem Endbenutzer einen Installer zur Verfügung stellt der alles notwendige für ihn installiert, sollte es doch völlig egal sein in wie vielen Dateien das dann steckt.
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

Hallo,

denke ich werde es mal mit PyInstaller probieren.

Konkret handelt es sich um Centos bzw. RedHat Linux Systeme.

Hintergrund ist, dass die verschiedene User ( mich eingeschlossen) keine root Rechte für Ihre Maschine haben.
D.h es müsste jedesmal paramko von der IT mit root Rechten installiert werden.
Danke für die Anworten.
Gruß
BlackJack

@bob1704: Unter Linux solltest Du Dich eher mit virtualenv beschäftigen. Man muss die Sachen ja auch nicht systemweit installieren, und man braucht keine Root-Rechte um Python-Module für einen Benutzer lokal zu installieren. Die Python-Dokumentation beschreibt wie man Erweiterungen installieren kann.

Insbesondere bei Linux verstehe ich die Beschränkung auf wenige Dateien nicht. Da stellt man einfach ein Archiv mit allen benötigten Abhängigkeiten zusammen und der Benutzer entpackt das dann irgendwo und startet die Anwendung die dort drin steckt. Wie viele Dateien das sind, ist doch schnuppe.
Antworten