无法建立netifaces

时间:2012-09-10 11:14:46

标签: c visual-c++ python-2.7

我正在尝试为windows构建python netifaces。我正在使用microsoft visual c ++ express 2010版。当我运行命令python setup.py install时,我得到以下日志和错误:

running install
running bdist_egg
running egg_info
writing netifaces.egg-info\PKG-INFO
writing top-level names to netifaces.egg-info\top_level.txt
writing dependency_links to netifaces.egg-info\dependency_links.txt
reading manifest file 'netifaces.egg-info\SOURCES.txt'
writing manifest file 'netifaces.egg-info\SOURCES.txt'
installing library code to build\bdist.win32\egg
running install_lib
running build_ext
building 'netifaces' extension
c:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe /c /nologo /Ox /MD /
W3 /GS- /DNDEBUG -DWIN32=1 -DNETIFACES_VERSION=0.8 -Ic:\python27\include -Ic:\py
thon27\PC /Tcnetifaces.c /Fobuild\temp.win32-2.7\Release\netifaces.obj
netifaces.c
netifaces.c(410) : error C2275: 'PyObject' : illegal use of this type as an expr
ession
        c:\python27\include\object.h(108) : see declaration of 'PyObject'
netifaces.c(411) : error C2275: 'PyObject' : illegal use of this type as an expr
ession
        c:\python27\include\object.h(108) : see declaration of 'PyObject'
netifaces.c(720) : error C2275: 'PyObject' : illegal use of this type as an expr
ession
        c:\python27\include\object.h(108) : see declaration of 'PyObject'
netifaces.c(720) : error C2065: 'dict' : undeclared identifier
netifaces.c(722) : error C2065: 'dict' : undeclared identifier
netifaces.c(722) : warning C4047: '=' : 'int' differs in levels of indirection f
rom 'PyObject *'
netifaces.c(724) : error C2065: 'dict' : undeclared identifier
netifaces.c(734) : error C2065: 'dict' : undeclared identifier
netifaces.c(734) : warning C4047: 'function' : 'PyObject *' differs in levels of
 indirection from 'int'
netifaces.c(734) : warning C4024: 'PyDict_SetItemString' : different types for f
ormal and actual parameter 1
netifaces.c(736) : error C2065: 'dict' : undeclared identifier
netifaces.c(736) : warning C4047: 'function' : 'PyObject *' differs in levels of
 indirection from 'int'
netifaces.c(736) : warning C4024: 'PyDict_SetItemString' : different types for f
ormal and actual parameter 1
netifaces.c(738) : error C2065: 'dict' : undeclared identifier
netifaces.c(738) : warning C4047: 'function' : 'PyObject *' differs in levels of
 indirection from 'int'
netifaces.c(738) : warning C4024: 'PyDict_SetItemString' : different types for f
ormal and actual parameter 1
netifaces.c(744) : error C2065: 'dict' : undeclared identifier
netifaces.c(744) : warning C4047: 'function' : 'PyObject *' differs in levels of
 indirection from 'int'
netifaces.c(744) : warning C4024: 'add_to_family' : different types for formal a
nd actual parameter 3
error: command '"c:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe"' f
ailed with exit status 2
抱歉格式错误 我错过了什么?

1 个答案:

答案 0 :(得分:1)

将netifaces.c重命名为netifaces.cpp(并相应地更新setup.py)。

原因是,使用.c扩展名,MSVC将这些文件解释为遵守C89,netifaces.c不遵循;更多信息: error C2275 : illegal use of this type as an expression

相关问题