3 Stimmen

Kann ich VS2005 verwenden, um Erweiterungen für ein mit VS2003 erstelltes Python-System zu erstellen?

RDFLib benötigt C-Erweiterungen, die kompiliert werden müssen, um auf ActiveState Python 2.5 zu installieren; soweit ich das beurteilen kann, gibt es keinen binären Installer, der irgendwo im Internet zu finden ist. Beim Versuch der Installation mit python setup.py install wird die folgende Meldung angezeigt:

error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.

Es gibt verschiedene Ressourcen im Web über die Konfiguration eines Compilers für Distutils, der die Verwendung von MinGW diskutiert, obwohl ich das noch nicht zum Laufen gebracht habe. Als Alternative habe ich VS2005.

Kann mir jemand kategorisch sagen, ob man den C-Compiler in VS2005 verwenden kann, um Python-Erweiterungsmodule für ein mit VS2003 kompiliertes Python (in diesem Fall ActiveState Python 2.5) zu erstellen. Wenn dies möglich ist, welche Konfiguration ist erforderlich?

3voto

bialix Punkte 17460

Das Hauptproblem ist die C-Laufzeitbibliothek. Python 2.4/2.5 wird gegen msvcr71.dll gelinkt und daher sollten alle C-Erweiterungen gegen diese dll gelinkt werden.

Eine weitere Option ist die Verwendung von gcc (mingw) anstelle von VS2005, Sie können es verwenden, um nur Python-Erweiterungen zu kompilieren. Es gibt ein anständiges Installationsprogramm, mit dem Sie gcc als Standard-Compiler für Ihre Python-Version konfigurieren können:

http://www.develer.com/oss/GccWinBinaries

2voto

DNS Punkte 35625

Ich kann es Ihnen nicht kategorisch sagen, aber ich glaube nicht, dass Sie es können. Ich bin nur in der umgekehrten Situation auf dieses Problem gestoßen (Python wurde mit VS2005 erstellt und ich versuche, es mit VS2003 zu erstellen). Bei der Suche im Internet fand ich keine Möglichkeit, das Problem zu umgehen. Meine letztendliche Lösung war, VC Express zu kaufen, da Microsoft mit VC2005 begann, die kostenlosen Editionen herauszubringen. Aber das ist offensichtlich nicht eine Option für Sie.

Ich verwende ActiveState Python nicht, aber gibt es eine neuere Version, die Sie verwenden könnten? Der Quellcode wird mit Projektdateien für VS2008 ausgeliefert, und ich bin mir ziemlich sicher, dass die Binärdateien von python.org seit einiger Zeit nicht mehr VS2003 verwenden.

0voto

DangerMouse Punkte 704

Ab heute, März 2012, kann ich kategorisch sagen, es ist möglich mit Python2.4.4 (nur eine, die ich getestet habe) und Visual Studio 2005 und 2008. Ich installiere gerade VS10 um das zu überprüfen. Ich weiß nicht, warum es funktioniert und ich habe Probleme mit distutils, so dass ich manuell zu kompilieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X