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

twisted-iocpsupport error when using pip on ubuntu / debian io.h missing

接收错误:

 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 也没有机会 在 apt 命令中包含 python-dev 也无济于事。

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

上出现同样的错误

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

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