Hallo,
ich habe eine kurze Frage. Ist es möglich ein Python-Programm zu linken, so dass ich das WINDOWS/LINUX-Executable unabhängig vom Interpreter auf einen anderen Rechner kopieren und ausführen kann?
Wenn ja, könnt Ihr mir eine Referenz geben, wo ich mir das Vorgehen hierfür abgucken kann?
Vielen Dank für die Antworten vorab.
VG.
Python-Programm zu EXECUTABLE linken
Ich kenne das Wort "linken" nicht hierfür, aber willst du aus deinem Python-Programm eine Version erzeugen, die auch Leute / Rechner ohne Python ausführen können? Ja, das geht. Zum Beispiel mit py2exe (Windows). Linux Systeme haben üblicherweise Python vorinstalliert, so dass man da nichts groß vorbereiten müsste. Einfach Quellcode weitergeben und gut. Benutzt du besondere zusätzliche Bibliotheken in deinem Programm?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
@ihPyP: Das sind zwei verschiedene Fragen, denn auch eine EXE kann man wieder auseinandernehmen. Und selbst wenn man nur `*.pyc`-Dateien ausliefert können die wieder dekompiliert werden und man kann sich da auch immer noch einklinken und Monkeypatching betreiben. Vergiss es einfach am besten. Wenn Du nicht möchtest das jemand etwas mit Deinem Programm macht was Du nicht willst, dann biete einen Webservice an.
@ihPyP: Unter Linux kann es sehr gut sein, dass verschiedene Pythonversionen installiert sind, und pyc-Dateien sind zwischen den Versionen nicht unbedingt kompatibel. Ist Dein Code so schlecht, dass Du Dich dafür schämst
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Unter Linux gibt es zig verschiedene Paketformate und daher zig Wege, ein Programm zu installieren. Um sich das zu ersparen gibt es ja eine Python eigene Paketverwaltung bzw. ein Tool dafür: pip! Ich weiß nicht, ob man damit ggf. nur pyc Dateien verteilen kann, aber wie BlackJack erwähnte bieten diese auch keinen großartigen Schutz. Wie Du es drehst und wendest, es wird auf jeden Fall schwierig.
Und wenn Du einen anderen, kruden, Weg gehst, dann stelle ich mir die Frage, ob es wirklich eine Zielgruppe gibt, die Deine Software nutzen mag... was dann wiederum die Frage aufwrift, ob sich diese Frickelei auch lohnt, wenn die Software keiner nutzt...
Wenn Menschen Deine Software nutzen wollen, ohne dafür zu bezahlen, dann werden sie es auch schaffen, sofern sie Zugang zum Code haben! Das gilt unabhängig von der Sprache. Vertraue also auf die Masse, die ehrlich ist, oder greife eben auf einen Webservice zurück.
Und wenn Du einen anderen, kruden, Weg gehst, dann stelle ich mir die Frage, ob es wirklich eine Zielgruppe gibt, die Deine Software nutzen mag... was dann wiederum die Frage aufwrift, ob sich diese Frickelei auch lohnt, wenn die Software keiner nutzt...
Wenn Menschen Deine Software nutzen wollen, ohne dafür zu bezahlen, dann werden sie es auch schaffen, sofern sie Zugang zum Code haben! Das gilt unabhängig von der Sprache. Vertraue also auf die Masse, die ehrlich ist, oder greife eben auf einen Webservice zurück.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ich als Linux-Anwender finde es gar nicht gut, wenn ich unter Linux eine ausführbare Datei bekomme und den Quelltext nicht lesen kann.ihPyP hat geschrieben:Ok, ich brauche vielleicht nicht die 100%ige Sicherheit - aber ich fände es gut, wenn man unter Linux halt auch eine eigenständige Datei hat, welche man nicht einfach mit einem TExteditor lesen kann.
Sind ja Marotten wie unter Windows.
Das mit dem Quelltext würde mich ja gar nicht so stark stören, aber das Programme anfangen ihren eigenen Python-Interpterter + Standardbibliothek mitzubringen würde mich ein wenig nerven, ich hab das doch schon alles auf dem Rechner.
ehm würde dann nicht so ziemlich jedes windows programm angreifbar sien also auch teure programme wie adobe oder sowas(ich kenn mich mit programmieren noch nicht so gut aus deswegen die frage).BlackJack hat geschrieben:@ihPyP: Das sind zwei verschiedene Fragen, denn auch eine EXE kann man wieder auseinandernehmen. Und selbst wenn man nur `*.pyc`-Dateien ausliefert können die wieder dekompiliert werden und man kann sich da auch immer noch einklinken und Monkeypatching betreiben. Vergiss es einfach am besten. Wenn Du nicht möchtest das jemand etwas mit Deinem Programm macht was Du nicht willst, dann biete einen Webservice an.
@chipcoint: die Frage ist immer nach dem Verhältnis zwischen Aufwand und Nutzen. Jeder auf Software basierende Kopierschutz wurde geknackt. Ansonsten haben so teure Programme ja keine geheimen Funktionen, die man analysieren müßte. Es braucht nur Zeit, umfangreiche Programme zu schreiben, aber kein besonderes Wissen. Wenn man wissen will, wie z.B. ein bestimmter Photoshop-Filter funktioniert, dann decompiliert man eben die kleine Filter-DLL und kann den innerhalb von wenigen Stunden auseinander nehmen. Würmer werden auf diese Weise von Virenexperten standardmäßig analysiert; in kurzer Zeit kennt man Verbreitungsweg und Schadfunktion.
Wir stellen ein teures Programm in C++ her. Und natuerlich ist das geknackt in der Minute in der eine neue Version rauskommt. Wer etwas anderes glaubt beluegt sich selbst. Ueblicherweise ueberschaetzen Leute die eigene Genialitaet, und glauben, was sie da haetten waere so besonders, dass der Rest der Welt es stehlen will. Dabei ist es meistens eher peinlich (ich beziehe mich da explizit ein). Das, was Software verkauft ist die anhaltende Bereitschaft, ein Produkt weiterzuentwickeln.