chrysn/aiocoap

"aiocoap[tinydtls]" intsllation on Windows

Closed this issue · 5 comments

Installation of aiocoap on windows 10 failed.

Below is the result while installing DTLSSocket:

Requirement already satisfied: aiocoap[tinydtls] in c:\users\poma\appdata\local\programs\python\python39\lib\site-packages (0.4.1)
Collecting DTLSSocket>=0.1.11a1
  Using cached DTLSSocket-0.1.12.tar.gz (150 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: Cython in c:\users\poma\appdata\local\programs\python\python39\lib\site-packages (from DTLSSocket>=0.1.11a1->aiocoap[tinydtls]) (0.29.23)
Building wheels for collected packages: DTLSSocket
  Building wheel for DTLSSocket (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\poma\appdata\local\programs\python\python39\python.exe' 'c:\users\poma\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'C:\Users\poma\AppData\Local\Temp\tmp50fmsn4a'
       cwd: C:\Users\poma\AppData\Local\Temp\pip-install-qjnm36oe\dtlssocket_84d6e6abbabc4c5a833f9b11840f25e0
  Complete output (11 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.9
  creating build\lib.win-amd64-3.9\DTLSSocket
  copying DTLSSocket\__init__.py -> build\lib.win-amd64-3.9\DTLSSocket
  copying DTLSSocket\DTLSSocket.py -> build\lib.win-amd64-3.9\DTLSSocket
  running build_ext
  Running: autoconf
  error: [WinError 2] The system cannot find the file specified
  ----------------------------------------
  ERROR: Failed building wheel for DTLSSocket
Failed to build DTLSSocket

[edit: declared copy-pasted code block]

Please try installing DTLSSocket (eg. using pip install DTLSSocket) on its own. If that works, I can look into this further here; if not, please report the issue at https://github.com/kabel42/DTLSSocket.

Tried installing using pip install DTLSSocket and still observe the same behaviour.

Collecting DTLSSocket
  Using cached DTLSSocket-0.1.12.tar.gz (150 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: Cython in c:\users\poma\appdata\local\programs\python\python39\lib\site-packages (from DTLSSocket) (0.29.23)
Building wheels for collected packages: DTLSSocket
  Building wheel for DTLSSocket (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\poma\appdata\local\programs\python\python39\python.exe' 'c:\users\poma\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'C:\Users\poma\AppData\Local\Temp\tmpiifowlw5'
       cwd: C:\Users\poma\AppData\Local\Temp\pip-install-oug3_9gb\dtlssocket_d403c46e61e34aad9200f533dd284c0a
  Complete output (11 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.9
  creating build\lib.win-amd64-3.9\DTLSSocket
  copying DTLSSocket\__init__.py -> build\lib.win-amd64-3.9\DTLSSocket
  copying DTLSSocket\DTLSSocket.py -> build\lib.win-amd64-3.9\DTLSSocket
  running build_ext
  Running: autoconf
  error: [WinError 2] The system cannot find the file specified
  ----------------------------------------
  ERROR: Failed building wheel for DTLSSocket
Failed to build DTLSSocket
ERROR: Could not build wheels for DTLSSocket which use PEP 517 and cannot be installed directly

[edit: declared copy-pasted shell text block]

Mh, then there's nothing aiocoap can do about this, but maybe the DTLSSocket author can. (What aiocoap could do is use a different DTLS library, see #230, but there are not really any other candidates fitting the requirements, and chances are this is just a glitch in DTLSSocket's build system).

Please report the issue at https://github.com/kabel42/DTLSSocket which is that library's public issue tracker.

On looking in a bit more closely, this may just be for lack of autoconf being installed. I haven't used Windows in ages, and don't even know how that'd be installed there.

It may still be a good idea to take this to the DTLSSocket issue tracker though -- AFAIK Python's build system can provide binary packages for platforms that don't come with build infrastructure, and maybe that should have happened and just broke somewhere.

$ sudo apt-get install autoconf
$ pip install DTLSSocket

This fixes it for me