Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Receiving error:

 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'

with

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

In a docker environment:

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

also no chance on python:3.8 or debian:10.8 including python-dev in the apt command also does not help.

Not sure what type of io.h file is required and how to obtain it. On google nothing really pops up and in the 2500 open issues on twistedmatrix, I cannot find anything related to this. The release seems to be from today 1st March 2021. Same error on 1.0.0

like image 434
Richard Avatar asked Mar 01 '21 19:03

Richard


1 Answers

twisted-iocpsupport is a package providing bindings to the Windows "I/O Completion Ports" APIs. These are Windows-only APIs.

You cannot use this package on Debian. Fortunately, you also don't need to as you have access to a good Linux-based non-blocking I/O system - epoll - which is supported in Twisted without the use of any additional packages.

like image 166
Jean-Paul Calderone Avatar answered Nov 20 '22 16:11

Jean-Paul Calderone