PyPy

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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hm... Ein gcc -I -L \Python\Python24\libs -l python24.lib -l libpython24.a -o test test.c liefert folgendes:
In file included from /Python/PyPy v0.6.1/pypy/translator/genc/g_include.h:18,
from test.c:2:
/Python/PyPy v0.6.1/pypy/translator/genc/int_include.h:200:2: warning: no newline at end of file
D:\Programme\tools\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: \Python\Python24\libs: No such file: Permission denied
collect2: ld returned 1 exit status

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ups :oops: So geht's wohl besser:
gcc -I -L\Python\Python24\libs\ -l python24.lib libpython24.a -o test test.c
Aber nicht Fehlerfrei:
In file included from /Python/PyPy v0.6.1/pypy/translator/genc/g_include.h:18,
from test.c:2:
/Python/PyPy v0.6.1/pypy/translator/genc/int_include.h:200:2: warning: no newline at end of file
gcc: libpython24.a: No such file or directory
Obwohl in \Python\Python24\libs\ wirklich die libpython24.a vorhanden ist...

Hab auch noch einige Varianten Probiert, aber irgendwie bekomme ich kein richtiges Ergebnis:
gcc -I -Ld:\Python\Python24\libs -l python24.lib -o test test.c
In file included from /Python/PyPy v0.6.1/pypy/translator/genc/g_include.h:18,
from test.c:2:
/Python/PyPy v0.6.1/pypy/translator/genc/int_include.h:200:2: warning: no newline at end of file
D:\Programme\tools\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lpython24.lib
collect2: ld returned 1 exit status

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
ProgChild
User
Beiträge: 210
Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:

jens hat geschrieben:
ProgChild hat geschrieben:Sag mal irre ich mich, oder ist PyPy nicht dafür da, Python Module zu erzeugen? Du kannst da so keine Ausführbaren Dateien draus machen...
Tja, ich weiß nicht... Ich wollte es einfach mal versuchen... Hab aber keine Erfahrung mit gcc & Co :oops:
Wie willst du denn das Modul als Anwendung linken? Du hast doch garkeinen Startpunkt... Du hast nur Funktionen da drinn...

Dein Python Modul kann nur von dem Python Interpreter geladen und ausgeführt werden. Ohne den kannst du keine Ausführbare Datei bekommen.

Du hast also zwei Möglichkeiten: Entweder, du schreibst ein Python Modul, dass dein Modul aufruft, oder du schreibst ein C Programm, dass den Python Interpreter einbindet und dann ein Modul aufruft.

Einen anderen Weg sehe ich nicht.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

ProgChild hat geschrieben:Du hast doch garkeinen Startpunkt... Du hast nur Funktionen da drinn...
Da hast du natürlich recht, wenn man sich nochmal http://www.python-forum.de/viewtopic.php?p=21786#21786 anschaut, gibt's nur die test()...

Aber ich glaube das erklärt nicht die Fehlermeldung beim gcc...

Wenn das alles klappten würde, könnte man sich doch schon vorstellen, das man eine Klasse definiert, die dann von einem mini C Programm aus aufgerufen wird...

Wie Praktikabel das ganze sein wird, weiß ich nicht...

Ich finde es nur schön, wenn man irgendwie doch eine echte EXE erzeugen könnte anstatt dem py2exe Kram... (Träumen darf man ja wohl noch :lol: )
Es kommen immer wieder Anwender, die nach einem Python-Compiler fragen. Also ich glaube das Interesse ist schon sehr groß und es würde Python für einige sehr viel Interessanter machen!

Der größte Nachteil von Py2exe ist es, das selbst kleinste Skripte richtig groß werden :(
Wobei eine andere Variante wäre noch, Python selber auf ein Minimum zu verkleinern... Das nur ein paar Dateien nötig sind, um überhaupt ein Mini-Python zu machen haben wir ja hier http://www.python-forum.de/viewtopic.php?t=3666 rausgefunden...
Ich hab nochmal eine Mini-Version erstellt und mit UPX die python.dll gepackt. Somit ist das mini-Python 852KB groß...

Wobei, hab gerade hier http://starship.python.net/crew/theller ... ompression unter Punkt 6 "7ZIP and UPX" gefunden, das es auch bei py2exe noch einiges Einsparungspotential gibt... Da bekommt man für 804KB schon eine fertige Geschichte... Naja, eine echte Compiler EXE wäre wahrscheinlich nochmal um einiges kleiner :(

Wie dem auch sei... Vielleicht wird PyPy uns irgendwann mal eine super Alternative liefern...

Ich wollte ja eigentlich nur mal eben gucken, was mit PyPy schon möglich ist... Das das jetzt so ausgeufert ist, war eigentlich nicht beabsichtigt...

Ich meine ich hab sowieso immer ein Python installiert und brauche nicht wirklich eine EXE ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Jens, gcc nimmt bei -l nicht dateinamen, er macht das so: -lpython24 (ein Argument ohne Freizeichen) lädt libpython24.a, das heißt immer ohne das "lib"-Prefix. So wird aus libSDL.a -lSDL und aus libz.a -lz.

Hast du dir schon mal freeze aus dem Python-Tarball angeschaut? Das kommt glaube ich dem näher was du machen willst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Leonidas hat geschrieben:Jens, gcc nimmt bei -l nicht dateinamen, er macht das so: -lpython24 (ein Argument ohne Freizeichen) lädt libpython24.a, das heißt immer ohne das "lib"-Prefix. So wird aus libSDL.a -lSDL und aus libz.a -lz.
Also wäre ein korrekter Aufruf so:
gcc -I -Ld:\Python\Python24\libs -lpython24 -o test test.c

Das bringt aber auch nur:
In file included from /Python/PyPy v0.6.1/pypy/translator/genc/g_include.h:18,
from test.c:2:
/Python/PyPy v0.6.1/pypy/translator/genc/int_include.h:200:2: warning: no newline at end of file
D:\Programme\tools\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lpython24
collect2: ld returned 1 exit status
Leonidas hat geschrieben:Hast du dir schon mal freeze aus dem Python-Tarball angeschaut? Das kommt glaube ich dem näher was du machen willst.
Du meinst das http://cvs.sourceforge.net/viewcvs.py/p ... e/#dirlist ???
Hört sich nett an:
Freeze a Python script into a binary.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jens hat geschrieben:Das bringt aber auch nur:
In file included from /Python/PyPy v0.6.1/pypy/translator/genc/g_include.h:18,
from test.c:2:
/Python/PyPy v0.6.1/pypy/translator/genc/int_include.h:200:2: warning: no newline at end of file
D:\Programme\tools\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lpython24
collect2: ld returned 1 exit status
Hast du denn alles nötige dort drin? Die libpython24.a musste ich soweit ich mich erinnert kann selbst generieren.
Leonidas hat geschrieben:Hast du dir schon mal freeze aus dem Python-Tarball angeschaut? Das kommt glaube ich dem näher was du machen willst.
jens hat geschrieben:Du meinst das http://cvs.sourceforge.net/viewcvs.py/p ... e/#dirlist ???
Genau das, das findest du auch seit langem im Python-Sourcen-Tarball.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Leonidas hat geschrieben:Hast du denn alles nötige dort drin? Die libpython24.a musste ich soweit ich mich erinnert kann selbst generieren.
Nein, die ist im Python-Verz. unter libs vorhanden...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten