在 ubuntu/debian io.h 上使用 pip 时出现 Twisted-iocpsupport 错误

问题描述

接收错误

 Building wheel for twisted-iocpsupport (PEP 517): started
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /tmp/tmpv8s6qz76 build_wheel /tmp/tmp9l8hgcva
       cwd: /tmp/pip-install-qsr4j4x_/twisted-iocpsupport
  Complete output (13 lines):
  running bdist_wheel
  running build
  running build_ext
  building 'twisted_iocpsupport.iocpsupport' extension
  creating build
  creating build/temp.linux-x86_64-3.8
  creating build/temp.linux-x86_64-3.8/twisted_iocpsupport
  x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Itwisted_iocpsupport -I/usr/include/pyth
on3.8 -c twisted_iocpsupport/iocpsupport.c -o build/temp.linux-x86_64-3.8/twisted_iocpsupport/iocpsupport.o
  twisted_iocpsupport/iocpsupport.c:631:10: Fatal error: io.h: No such file or directory
    631 | #include "io.h"
        |          ^~~~~~
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' Failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for twisted-iocpsupport
  Building wheel for twisted-iocpsupport (PEP 517): finished with status 'error'

channels==3.0.3
daphne==3.0.1
Twisted==21.2.0
twisted-iocpsupport==1.0.1

在 docker 环境中:

FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get -y install python3 python3-pip

workdir /usr/src/app

# copy requirements
copY requirements.txt ./

RUN pip3 install -r requirements.txt

python:3.8debian:10.8 上也没有机会 在 python-dev 命令中包含 apt 也无济于事。

不确定需要什么类型的 io.h 文件以及如何获取它。在 google 上没有真正弹出任何东西,在twistedmatrix 上的 2500 个未解决的问题中,我找不到与此相关的任何内容。该版本似乎是从今天 2021 年 3 月 1 日开始的。1.0.0

上的相同错误

解决方法

twisted-iocpsupport 是一个包,提供与 Windows“I/O 完成端口”API 的绑定。这些是仅限 Windows 的 API。

你不能在 Debian 上使用这个包。幸运的是,您也不需要这样做,因为您可以访问一个良好的基于​​ Linux 的非阻塞 I/O 系统 - epoll - Twisted 支持它,而无需使用任何额外的包。