Hallo,
für eine Applikation habe ich die Elementtree-Lib benutzt. Inzwischen hat sich rausgestellt, dass ich eine bessere Performance brauche, und habe dafür cElementtree erwogen und mir ein entsprechendes Archiv 'runtergeladen. Da ich mit Python2.2 arbeite und das ganze für verschiedene Plattformen brauche, müsste ich die cElementtree-Sourcen selbst übersetzen, also keine fertigen packages benutzen. Gibt's irgendwo eine Anleitung, wie das geht?
Danke im Voraus,
Wolfgang
celementtree selbst übersetzen?
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Hi ws...
In der Readme gibt es einen Abschnitt "Installation"... was ist an dem denn verkehrt?
BTW:
Der besagt: python setup.py install waere das, was du tun musst. Getestet hab ichs aber nicht... und genutzt dafuer habe ich das "TGZ" von Version 1.0.5.
In der Readme gibt es einen Abschnitt "Installation"... was ist an dem denn verkehrt?
BTW:
Der besagt: python setup.py install waere das, was du tun musst. Getestet hab ichs aber nicht... und genutzt dafuer habe ich das "TGZ" von Version 1.0.5.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Hi,
mit dem setup.py kann ich das natürlich in mein Python 'reininstallieren. Was ich aber haben möchte, ist ein Source-Tree, den ich in unser Buildsystem einbauen kann, um die betreffende Library für verschiedene Plattformen bauen zu können, so dass die Libraries dann als Binaries ausgeliefert werden können. Das setup setzt schliesslich eine installierte Build-Umgebung (C-Compiler usw.) voraus, die beim Kunden nicht vorhanden ist. Kurz, ich möchte die Library nicht in jeder Installation mit setup erzeugen müssen, sondern einmal kompilieren und für die verschiedenen Plattformen bereitstellen.
Gruss
Wolfgang
mit dem setup.py kann ich das natürlich in mein Python 'reininstallieren. Was ich aber haben möchte, ist ein Source-Tree, den ich in unser Buildsystem einbauen kann, um die betreffende Library für verschiedene Plattformen bauen zu können, so dass die Libraries dann als Binaries ausgeliefert werden können. Das setup setzt schliesslich eine installierte Build-Umgebung (C-Compiler usw.) voraus, die beim Kunden nicht vorhanden ist. Kurz, ich möchte die Library nicht in jeder Installation mit setup erzeugen müssen, sondern einmal kompilieren und für die verschiedenen Plattformen bereitstellen.
Gruss
Wolfgang
*Ein* Paket mit einer C-Erweiterung für verschiedene Plattformen dürfte nicht gehen. Das Modul muss ja gegen den jeweiligen Interpretierer gelinkt sein. Du kannst höchstens ein Python 2.2 bei Dir installieren und damit dann das Modul übersetzen und auf das System ohne Build-Umgebung kopieren.
Hi BlackJack,
ja, pro Plattform bräuchte man natürlich eine Library, das ist schon klar. Was ich eigentlich suchen würde, wäre eine Möglichkeit, die Bibliothek nicht über setup und python, sondern direkt via Makefile zu erstellen. setup.py kompiliert die C-Sourcen ja auch, also müsste es doch auch via make funktionieren, oder?
Aber noch eine andere Frage: ich habe jetzt mal testweise cElementTree mit setup.py bauen lassen. cElementTree.pyd wurde dabei anscheinend auch gebaut und in ein entsprechendes Verzeichnis gelegt, mit dem Hinweis, dass dieses Verzeichnis sich nicht in meinem Python-Suchpfad befindet. Ich habe also mein Python danach gestartet, und
aufgerufen, allerdings kriege ich dann die Meldung:
Gruss
Wolfgang
ja, pro Plattform bräuchte man natürlich eine Library, das ist schon klar. Was ich eigentlich suchen würde, wäre eine Möglichkeit, die Bibliothek nicht über setup und python, sondern direkt via Makefile zu erstellen. setup.py kompiliert die C-Sourcen ja auch, also müsste es doch auch via make funktionieren, oder?
Aber noch eine andere Frage: ich habe jetzt mal testweise cElementTree mit setup.py bauen lassen. cElementTree.pyd wurde dabei anscheinend auch gebaut und in ein entsprechendes Verzeichnis gelegt, mit dem Hinweis, dass dieses Verzeichnis sich nicht in meinem Python-Suchpfad befindet. Ich habe also mein Python danach gestartet, und
Code: Alles auswählen
import sys
sys.path.append('<Pfad zu cElementTree.pyd>')
import cElementTree
Muss Python noch mehr über die Library wissen, um das Modul zu finden? Ich habe noch ein __init__.py in das entsprechende Verzeichnis gelegt, das hat aber nicht geholfen. Irgendwelche Ideen?ImportError: No module named cElementTree
Gruss
Wolfgang
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Übrigens: du musst natürlich das Modul nicht installieren wenn du es kompilieren willst. Du kannst es einfach nur kompilieren indem du ``python setup.py build_ext`` aufrufst. distutils arbeiten in mehreren Stufen, so dass zuerst ``build`` kommt, danach (sofern es C-Erweiterungen gibt) ``build_ext`` und danach ``install`` oder ``bdist_*``. Du kannst also mit ``bdist_wininst`` einen Installer bauen lassen oder mit ``bdist_egg`` ein Egg. Letzteres allerdings nur wenn du die setuptools nutzt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice