結論
できる。でもややこしくなるだけなので、素直に msvcrt9 をインストールした方がいい。
ああめんどくさい。
条件
- Windows XP
- Python 2.6.2
やり方
Python26.dll にリンクした実行ファイルの .manifest を書く
hoge.exe.manifest として hoge.exe と同じディレクトリに保存
version が違うと動かないので注意。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="*.*.*" version="1.0.0.0" type="win32" processorArchitecture="x86" /> <dependency> <dependentAssembly> <assemblyIdentity name="Microsoft.VC90.CRT" version="9.0.21022.8" type="win32" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> </dependentAssembly> </dependency> </assembly>
Microsoft.VC90.CRT を持ってくる
SP1 ではない*1。
hoge.exe Microsoft.VC90.CRT.manifest msvcr90.dll msvcp90.dll msvcm90.dll
または
hoge.exe Microsoft.VC90.CRT/ Microsoft.VC90.CRT.manifest msvcr90.dll msvcp90.dll msvcm90.dll
msvcp90.dll と msvcm90.dll は多分いらない。
*.pyd を hoge.exe と同じディレクトリに移動する
要するに実行可能バイナリと同じディレクトリに置いとかないとロードしない。
パスが変わるので当然上手く動かないモジュールも出てくるはず。
実行する
参考
*1:ランタイムをきちんとインストールする限りでは SP1 でも動く