我在Windows / XP上安装了Microsoft Visual Studio 2008。我正在尝试安装具有C扩展名的Python包。通常,您键入“setup.py install”以交互方式执行此操作。
我遇到的问题是:如果我在cmd提示符下键入“setup.py install”,它会向我显示编译错误,如下所示:
creating build\temp.win32-2.7\Release\src
c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python27\include -IC:\Python27\lib\site-packages\numpy\core\include -IC:\Python27\include -IC:\Python27\PC /Tcsrc/PixCte_FixY.c /Fobuild\temp.win32-2.7\Release\src/PixCte_FixY.obj PixCte_FixY.c
c:\python27\include\pyconfig.h(227) : fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
error: command '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2
但如果我输入“setup.py install> logfile 2>& 1”,日志文件会显示
building 'acstools.PixCte_FixY' extension
c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python27\include -IC:\Python27\lib\site-packages\numpy\core\include -IC:\Python27\include -IC:\Python27\PC /Tcsrc/PixCte_FixY.c /Fobuild\temp.win32-2.7\Release\src/PixCte_FixY.obj
error: command '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2
因此它报告说编译失败了,但不知道问题是什么。
所以,我的问题是:如何将完整的编译器输出收集到文件中?
答案 0 :(得分:0)
我猜没有好的答案。我遇到了这个解决方法:
我使用了这个python程序:
import sys
import subprocess
print sys.argv
cmd = [ sys.executable, "setup.py" ] + sys.argv[1:]
p = subprocess.Popen( cmd, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=False,
creationflags = subprocess.CREATE_NEW_PROCESS_GROUP )
while 1 :
n = p.stdout.read(256)
if n == '' :
break
sys.stdout.write(n)
p.wait()
我把它命名为“runsetup.py”。现在使用“runsetup.py install”而不是“setup.py install”。不知何故,cl.exe看到了与其环境不同的东西,并实际打印了所有错误消息。