Kann ich VS2005 Erweiterungen für ein Python-System mit VS2003 gebaut bauen
-
03-07-2019 - |
Frage
RDFLib muss C-Erweiterungen erstellt werden, installieren auf Activestate Python 2.5; soweit ich das beurteilen kann, gibt es keine binären Installer überall offensichtlich auf dem Netz. Beim Versuch, mit python setup.py install
zu installieren, erzeugt es die folgende Meldung an:
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 verschieden
Lösung Ich kann Ihnen nicht kategorisch sagen, aber ich glaube nicht, Sie können. Ich habe nur in dieses Problem in der umgekehrten Situation führen (Python mit VS2005 gebaut und versucht, mit VS2003 zu bauen). Suchen im Web hat aufdrehen keine Möglichkeit um ihn herum zu hacken. Meine Lösung war, VC Express zu bekommen, da VC2005 ist, wenn Microsoft die kostenlosen Ausgaben gestartet freigegeben wird. Aber das ist natürlich nicht eine Option für Sie. Ich verwende Activestate Python nicht, aber gibt es eine neuere Version, die Sie verwenden könnten? Die Quelle wird mit Projektdateien für VS2008, und ich bin mir ziemlich sicher, dass die python.org binäre Builds vor einer Weile VS2003 gestoppt werden.
Andere Tipps
Das Hauptproblem ist C-Laufzeitbibliothek. Python 2.4 / 2.5 verknüpft gegen msvcr71.dll und damit alle C-Erweiterungen sollten gegen diese DLL verknüpft werden.
Eine weitere Option ist gcc zu verwenden (mingw) anstelle von VS2005, können Sie es verwenden, um nur Python-Erweiterungen zu kompilieren. Es ist in Ordnung, Installer, den Sie gcc als Standard-Compiler für Python-Version konfigurieren können:
Ab heute März 2012, kann ich kategorisch sagen, dass es möglich ist, mit Python2.4.4 (nur einer denen ich getestet habe) und Visual Studio 2005 und 2008. Nur die Installation VS10, dass zu überprüfen. Ich weiß nicht, warum es funktioniert, und ich habe Probleme mit distutils so dass ich manuell kompilieren.