Failed building wheel for netifaces

目录

文章目录

问题

安装 OpenStackClient 的时候发现问题:

Failed building wheel for netifaces
Running setup.py clean for netifaces
Failed to build PyYAML netifaces
...

解决

需要找到和操作系统 PIP 环境兼容的 netifaces 软件包。
访问 https://www.lfd.uci.edu/~gohlke/pythonlibs/#netifaces,搜索 “netifaces” 找到版本列表。

Netifaces, portable network interface information.

netifaces‑0.10.7‑cp27‑cp27m‑win32.whl
netifaces‑0.10.7‑cp27‑cp27m‑win_amd64.whl
netifaces‑0.10.7‑cp34‑cp34m‑win32.whl
netifaces‑0.10.7‑cp34‑cp34m‑win_amd64.whl
netifaces‑0.10.7‑cp35‑cp35m‑win32.whl
netifaces‑0.10.7‑cp35‑cp35m‑win_amd64.whl
netifaces‑0.10.7‑cp36‑cp36m‑win32.whl
netifaces‑0.10.7‑cp36‑cp36m‑win_amd64.whl
netifaces‑0.10.7‑cp37‑cp37m‑win32.whl
netifaces‑0.10.7‑cp37‑cp37m‑win_amd64.whl

匹配操作系统的 PIP 环境:

Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip; print(pip.pep425tags.get_supported())
[('cp27', 'cp27mu', 'manylinux1_x86_64'), ('cp27', 'cp27mu', 'linux_x86_64'), ('cp27', 'none', 'manylinux1_x86_64'), ('cp27', 'none', 'linux_x86_64'), ('py2', 'none', 'manylinux1_x86_64'), ('py2', 'none', 'linux_x86_64'), ('cp27', 'none', 'any'), ('cp2', 'none', 'any'), ('py27', 'none', 'any'), ('py2', 'none', 'any'), ('py26', 'none', 'any'), ('py25', 'none', 'any'), ('py24', 'none', 'any'), ('py23', 'none', 'any'), ('py22', 'none', 'any'), ('py21', 'none', 'any'), ('py20', 'none', 'any')]
>>>

匹配元组(e.g. ('cp27', 'none', 'linux_x86_64'))和软件清单发现没有完全一致的软件包。直接下载 netifaces‑0.10.7‑cp27‑cp27m‑win_amd64.whl,然后 rename。

mv netifaces-0.10.7-cp27-cp27m-win_amd64.whl netifaces-0.10.7-cp27-none-linux_x86_64.whl
pip install netifaces-0.10.7-cp27-none-linux_x86_64.whl

如果不 rename,则会触发错误:

netifaces-0.10.7-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.

或者你只是缺少 python-dev

yum install python-devel
<think>嗯,用户遇到了“Failed building wheel for myproject”的错误,我需要帮他解决这个问题。首先,我得回忆一下常见的导致这个错误的原因。可能的情况包括缺少必要的构建工具或者依赖项,比如setuptools或wheel没有安装。用户可能在尝试通过pip install安装自己的项目,这时候pip会尝试构建wheel,如果失败就会报这个错误。 然后,我应该考虑具体的解决步骤。第一步可能是安装或升级setuptools和wheel,因为这些是构建wheel的基础。用户可能需要运行pip install --upgrade setuptools wheel。接下来,检查项目中的setup.py文件是否正确,是否存在语法错误或者缺少必要的信息,比如name、version等。如果setup.py有问题,构建过程就会失败。 另外,可能需要用户检查是否在正确的目录下运行安装命令,比如是否在包含setup.py的目录中执行pip install .。如果不在项目根目录,pip找不到setup.py,自然无法构建wheel。 还有可能是系统缺少某些编译依赖,比如C扩展需要的编译器或者库。这时候用户需要根据错误日志安装相应的开发包,比如在Ubuntu上安装python3-dev或者build-essential。 用户提供的错误信息可能不够详细,所以建议他们使用-v选项来获取更详细的日志,或者检查生成的错误日志文件,通常位于临时目录中。查看具体的错误信息可以帮助定位问题,比如是权限问题、依赖缺失还是代码错误。 此外,如果项目使用了pyproject.toml,可能需要确认是否配置正确,或者是否缺少构建后端如setuptools的声明。还有可能用户尝试安装的包不支持当前Python版本,或者存在兼容性问题。 最后,可能需要用户手动生成分发文件,先运行python setup.py sdist bdist_wheel,然后安装生成的whl文件,这样可以绕过pip的自动构建步骤,直接测试wheel是否能够正确生成。 总结下来,解决步骤大致是:安装依赖,检查setup.py,确保目录正确,检查系统依赖,查看详细日志,手动构建wheel。如果这些步骤都做了,应该能解决大部分导致wheel构建失败的问题。</think>当出现`Failed building wheel for myproject`错误时,通常是由于项目缺少构建`wheel`包所需的配置或依赖。以下是具体原因和解决方案: --- ### **原因分析** 1. **缺少`setup.py`或`pyproject.toml`文件** - Python项目必须包含`setup.py`或`pyproject.toml`文件,用于定义包的元数据和构建配置。 2. **未安装`setuptools`或`wheel`** - `setuptools`和`wheel`是构建Python包的核心工具。如果未安装,无法生成`.whl`文件。 3. **语法错误或配置错误** - `setup.py`中存在语法错误,或未正确声明`name`、`version`等必填字段。 4. **缺少系统依赖** - 如果项目包含C/C++扩展,可能需要编译器(如`gcc`)或开发库(如`python3-dev`)。 --- ### **解决方案** #### 1. 安装构建工具 ```bash pip install --upgrade setuptools wheel ``` #### 2. 检查项目结构 确保项目目录包含`setup.py`或`pyproject.toml`。 示例`setup.py`: ```python from setuptools import setup, find_packages setup( name="myproject", version="0.1", packages=find_packages(), install_requires=["numpy"], # 依赖项(可选) ) ``` #### 3. 在项目根目录运行安装 ```bash cd /path/to/myproject pip install . ``` #### 4. 检查系统依赖 - **Linux**:安装编译器和开发库 ```bash sudo apt-get install python3-dev build-essential ``` - **Windows**:安装[Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/). #### 5. 查看详细错误日志 ```bash pip install -v . # 添加`-v`参数查看详细日志 ``` --- ### **手动生成Wheel文件** 如果仍失败,可尝试手动构建: ```bash python setup.py sdist bdist_wheel ``` 生成的`.whl`文件会在`dist/`目录中。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

范桂飓

文章对您有帮助就请一键三连:)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值