Python als statische Bibliothek einbinden

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
DonnerCobra
User
Beiträge: 53
Registriert: Mittwoch 9. April 2008, 19:35

Hi! :)

Ich habe ein Problem. Ich möchte gerne in mein kommerzielles Programm Python einbinden. Ich habe mir also die Sources runtergeladen.

Entweder ich kompilier alles und liefer neben meinem Programm auch die .dll Datei (natürlich unter win) mit und kompilier mein Programm mit der Bibliothek mittels der dynamischen Bibliothek oder ich kompilier alles mittel static linking wo ich komplett den Python Core in mein Programm einbinde und nur noch 1 Datei habe.

1. Ich weiß, hier sind keine Rechtsantworten erlaubt, aber weiß einer wo ich nachschauen kann ob das static-linkage verboten ist in einem kommerziellen Programm? Die Lizenz gibt da mir nicht genug Auskunft drüber.

2. Ich habe ein Problem beim static-linkage. Ich nutze MSVC2005 und habe in den Projekteinstlelungen von 'pythoncore' die Option umgestellt das eine statiche Bibliothek erzeugt werden soll und diese die Endung .lib hat.

Dann habe ich alles kompiliert und die 11 MB große pythoncore.lib bekommen. Dann mein Programm öffnen, den Ordner mit den HeaderDateien in den Projekteinstellungen angeben und die lib Datei in das Projektverzeichnis ziehen, korrekt? Wenn das alles soweit in Ordnung ist, frag ich mich warum er trotzdem linker error Meldungen auswirft.
Kann mir wer helfen?


2>python25.lib(modsupport.obj) : Es wurde ein mit /GL kompiliertes MSIL .netmodule oder module gefunden. Verknüpfung wird mit /LTCG erneut gestartet. Fügen Sie /LTCG zur Verknüpfungsbefehlszeile hinzu, um die Verknüpfungsleistung zu erhöhen.
2>python25.lib(dl_nt.obj) : error LNK2005: _DllMain@12 ist bereits in _myapp_win32_release.lib(myapp_pmain.obj) definiert.

Ich danke euch :)
lunar

DonnerCobra hat geschrieben:1. Ich weiß, hier sind keine Rechtsantworten erlaubt, aber weiß einer wo ich nachschauen kann ob das static-linkage verboten ist in einem kommerziellen Programm?
Nein.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich nehme mal an lunar meint, "nein, es ist nicht verboten" und nicht "nein, es weiß niemand wo du nachschauen kannst", was eine gewagte These wäre. Ich denke auch dass es keine Probleme geben sollte Programme unter der PSF-Lizenz (also etwa CPython) statisch in propietäre Programme einzubinden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Leonidas hat geschrieben:Ich nehme mal an lunar meint, "nein, es ist nicht verboten" und nicht "nein, es weiß niemand wo du nachschauen kannst", was eine gewagte These wäre.
Danke für die Korrektur :) Ich hatte nur den Teil ab "ob" gelesen ...
DonnerCobra
User
Beiträge: 53
Registriert: Mittwoch 9. April 2008, 19:35

Ich danke für eure Hilfe :)

Eine Frage noch. Ich sehe das viele Programme, die Python Scripting unterstützen ihren eigenen Interpreter mitbringen. Ist das auf dauer nicht eher völlig unübersichtlich wenn man teilweise 6-7 verschiedene Pythoninterpreter auf dem System hat?

Ich bin am abwegen ob ich die Standard Python Installation nehmen soll oder auch einen Inteprreter kompiliert mitliefern soll.

Danke und gute n8.
Antworten