VS2005を使用して、VS2003で構築されたPythonシステムの拡張機能を構築できますか

StackOverflow https://stackoverflow.com/questions/606680

質問

RDFLib は、ActiveState Python 2.5にインストールするためにC拡張機能をコンパイルする必要があります。私が知る限り、ウェブ上で明白なバイナリインストーラはありません。 python setup.py install でインストールしようとすると、次のメッセージが生成されます。

error:PythonはVisual Studio 2003でビルドされました;
拡張機能は、互換性のあるバイナリを生成できるコンパイラでビルドする必要があります。
Visual Studio 2003はこのシステムで見つかりませんでした。 Cygwinがインストールされている場合、
" -c mingw32"を渡すことで、MingW32でコンパイルを試すことができます。 setup.pyへ。

さまざまな MinGWの使用を検討しているdistutils用のコンパイラーの構成に関するWebサイト上のリソース(まだ機能していませんが) 。代替手段としてVS2005があります。

VS2005でCコンパイラを使用して、VS2003でコンパイルされたPython(この場合はActiveState Python 2.5)のPython拡張モジュールを構築できるかどうかを、誰でも明確に教えてください。これが可能な場合、どのような構成が必要ですか?

役に立ちましたか?

解決

明確に伝えることはできませんが、できるとは思いません。私は逆の状況でのみこの問題に遭遇しました(PythonはVS2005でビルドされ、VS2003でビルドしようとしています)。 Webを検索しても、Webをハックする方法は見つかりませんでした。 VC2005はMicrosoftが無料版のリリースを開始したときなので、私の最終的な解決策はVC Expressを入手することでした。しかし、それは明らかにあなたのためのオプションではありません。

ActiveState Pythonは使用していませんが、使用できる新しいバージョンはありますか?ソースにはVS2008のプロジェクトファイルが同梱されており、python.orgのバイナリビルドがVS2003の使用をやや前に停止したと確信しています。

他のヒント

主な問題は、Cランタイムライブラリです。 Python 2.4 / 2.5はmsvcr71.dllに対してリンクされているため、すべてのC拡張はこのdllに対してリンクされる必要があります。

もう1つのオプションは、VS2005の代わりにgcc(mingw)を使用することです。これを使用して、Python拡張機能のみをコンパイルできます。 Pythonバージョンのデフォルトコンパイラとしてgccを設定できる適切なインストーラーがあります。

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

今日の2012年3月現在、Python2.4.4(テスト済みの1つのみ)とVisual Studio 2005および2008で可能だと断言できます。VS10をインストールするだけで確認できます。なぜ機能するのかわかりません。distutilsの使用に問題があるため、手動でコンパイルする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top