gpt4 book ai didi

Python netifaces 模块 Windows 安装

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:48 27 4
gpt4 key购买 nike

我的项目需要使用 netifaces 模块,但我无法获取它。我尝试通过 easy_install 安装源代码,但每次我收到此消息:

error: Unable to find vcvarsall.bat

我在 StackOverflow 中读到了一些有关此错误的答案,但我无法理解它......

有netifaces的编译版本或安装程序吗?非常感谢!

编辑1:安装 Visual Studio C++ 后出现此错误..有帮助吗?

Searching for netifaces
Reading https://pypi.python.org/simple/netifaces/
Reading http://alastairs-place.net/netifaces
Reading http://alastairs-place.net/projects/netifaces
Best match: netifaces 0.8
Downloading http://alastairs-place.net/projects/netifaces/netifaces-0.8.tar.gz
Processing netifaces-0.8.tar.gz
Writing c:\users\daniel\appdata\local\temp\easy_install-gkcl9j\netifaces-0.8\setup.cfg
Running netifaces-0.8\setup.py -q bdist_egg --dist-dir c:\users\daniel\appdata\local\temp\easy_install-gkcl9j\netifaces-0.8\egg-dist-tmp-wuxsjm
netifaces.c
netifaces.c(406) : error C2275: 'PyObject' : illegal use of this type as an expression
c:\python27\include\object.h(108) : see declaration of 'PyObject'
netifaces.c(406) : error C2065: 'py_family' : undeclared identifier
netifaces.c(407) : error C2275: 'PyObject' : illegal use of this type as an expression
c:\python27\include\object.h(108) : see declaration of 'PyObject'
netifaces.c(407) : error C2065: 'list' : undeclared identifier
netifaces.c(407) : error C2065: 'py_family' : undeclared identifier
netifaces.c(407) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
netifaces.c(407) : warning C4024: 'PyDict_GetItem' : different types for formal and actual parameter 2
netifaces.c(409) : error C2065: 'py_family' : undeclared identifier
netifaces.c(411) : error C2065: 'list' : undeclared identifier
netifaces.c(411) : warning C4047: '==' : 'int' differs in levels of indirection from 'void *'
netifaces.c(411) : error C2065: 'list' : undeclared identifier
netifaces.c(411) : error C2065: 'list' : undeclared identifier
netifaces.c(411) : error C2065: 'list' : undeclared identifier
netifaces.c(415) : error C2065: 'list' : undeclared identifier
netifaces.c(416) : error C2065: 'list' : undeclared identifier
netifaces.c(416) : warning C4047: '=' : 'int' differs in levels of indirection from 'PyObject *'
netifaces.c(417) : error C2065: 'list' : undeclared identifier
netifaces.c(419) : error C2065: 'py_family' : undeclared identifier
netifaces.c(419) : error C2065: 'py_family' : undeclared identifier
netifaces.c(419) : error C2065: 'py_family' : undeclared identifier
netifaces.c(423) : error C2065: 'list' : undeclared identifier
netifaces.c(424) : error C2065: 'py_family' : undeclared identifier
netifaces.c(424) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
netifaces.c(424) : warning C4024: 'PyDict_SetItem' : different types for formal and actual parameter 2
netifaces.c(424) : error C2065: 'list' : undeclared identifier
netifaces.c(424) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
netifaces.c(424) : warning C4024: 'PyDict_SetItem' : different types for formal and actual parameter 3
netifaces.c(425) : error C2065: 'list' : undeclared identifier
netifaces.c(425) : error C2065: 'list' : undeclared identifier
netifaces.c(425) : error C2065: 'list' : undeclared identifier
netifaces.c(427) : error C2065: 'list' : undeclared identifier
netifaces.c(427) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
netifaces.c(427) : warning C4024: 'PyList_Append' : different types for formal and actual parameter 1
netifaces.c(716) : error C2275: 'PyObject' : illegal use of this type as an expression
c:\python27\include\object.h(108) : see declaration of 'PyObject'
netifaces.c(716) : error C2065: 'dict' : undeclared identifier
netifaces.c(718) : error C2065: 'dict' : undeclared identifier
netifaces.c(718) : warning C4047: '=' : 'int' differs in levels of indirection from 'PyObject *'
netifaces.c(720) : error C2065: 'dict' : undeclared identifier
netifaces.c(730) : error C2065: 'dict' : undeclared identifier
netifaces.c(730) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
netifaces.c(730) : warning C4024: 'PyDict_SetItemString' : different types for formal and actual parameter 1
netifaces.c(732) : error C2065: 'dict' : undeclared identifier
netifaces.c(732) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
netifaces.c(732) : warning C4024: 'PyDict_SetItemString' : different types for formal and actual parameter 1
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 formal and actual parameter 1
netifaces.c(740) : error C2065: 'dict' : undeclared identifier
netifaces.c(740) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
netifaces.c(740) : warning C4024: 'add_to_family' : different types for formal and actual parameter 3
error: Setup script exited with error: command '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2

最佳答案

Netifaces是根据c99标准编写的。特别是,代码使用混合声明和代码。不幸的是,微软的编译器不遵守该标准,并且不理解这种混合(编译 *.c 文件时)。我的解决方案是简单地将源文件重命名为“netifaces.cpp”。这样,MS 编译器就可以进行 C++ 构建,其中允许混合声明和代码。该文件的重命名还使得需要编辑“setup.py”来更改其中的文件名。

关于Python netifaces 模块 Windows 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19094456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com