Skip to content
This repository has been archived by the owner on Jun 11, 2021. It is now read-only.

No wheels for Linux and Python 3.7 #33

Open
inickt opened this issue Jan 11, 2019 · 4 comments
Open

No wheels for Linux and Python 3.7 #33

inickt opened this issue Jan 11, 2019 · 4 comments

Comments

@inickt
Copy link

inickt commented Jan 11, 2019

Went to install some dependencies and my pyenv sync was failing due to netifaces failing to build from source. Installing python3-devel allows me to work with it for now, but it would be nice to have Linux wheels for 3.7. Thanks!

@RonnyPfannschmidt
Copy link

just hit this as well, i "fixed" by providing a wheel on aa devpi, but thats not ideal

nsoranzo added a commit to nsoranzo/starforge-recipes that referenced this issue Feb 9, 2020
Python 3.7 and 3.8 wheels are missing from PyPI, see
al45tair/netifaces#33
@ichibrosan
Copy link

My first attempt to install this failed because I needed to do "apt install python3-pip"
My 2nd attempt to install this failed because I needed to do "pip3 install setuptools"
My 3rd attempt to install this failed because I needed to do "apt install python3.7-dev"
Then it appeared to install but did not function as follows...

$python3
Python3.7.3 ...
>>> import netifaces
>>> netifaces.interfaces()
Traceback (most recent last call):
  File "<stdin>", line 1, in <module>
AttributeError: module 'netifaces' has no attribute 'interfaces'
>>>

I believe this is a python 3.7 problem with netifaces. FYI :-)

@LourensVeen
Copy link

LourensVeen commented Aug 26, 2020

I'm seeing the same module 'netifaces' has no attribute 'interfaces' problem. After some experimentation and way too deep a dive into importlib, I've modified netifaces.py to read:

def __bootstrap__():
    global __bootstrap__, __loader__, __file__
    import sys, pkg_resources, os
    import importlib
    from importlib.machinery import ExtensionFileLoader

    __file__ = pkg_resources.resource_filename(__name__, 'netifaces.cpython-38-x86_64-linux-gnu.so')
    __loader__ = None; del __bootstrap__, __loader__
    loader = ExtensionFileLoader(__name__,__file__)
    spec = importlib.util.spec_from_loader(__name__, loader)
    m = loader.create_module(spec)
    loader.exec_module(m)
__bootstrap__()

This seems to fix the problem, at least on Python 3.8. Apparently load_module() has been deprecated since Python 3.4, so maybe it's not working any more, or is used incorrectly here?

Edit: That file is not in the repo here, so I guess it's generated. Needs more investigation.

@ericriff
Copy link

I just came across this issue. I've noticed that this repo has a build-manylinux script that generates the wheels, ran it locally and found that it does generate wheels for python 3.7, 3.8 and 3.9.
Is there any reason why they're not available on PyPI?
Wheels generated by the script:

netifaces-0.10.9-cp27-cp27m-manylinux1_i686.whl     netifaces-0.10.9-cp35-cp35m-manylinux1_i686.whl    netifaces-0.10.9-cp37-cp37m-manylinux1_i686.whl	  netifaces-0.10.9-cp39-cp39-manylinux1_i686.whl
netifaces-0.10.9-cp27-cp27m-manylinux1_x86_64.whl   netifaces-0.10.9-cp35-cp35m-manylinux1_x86_64.whl  netifaces-0.10.9-cp37-cp37m-manylinux1_x86_64.whl  netifaces-0.10.9-cp39-cp39-manylinux1_x86_64.whl
netifaces-0.10.9-cp27-cp27mu-manylinux1_i686.whl    netifaces-0.10.9-cp36-cp36m-manylinux1_i686.whl    netifaces-0.10.9-cp38-cp38-manylinux1_i686.whl
netifaces-0.10.9-cp27-cp27mu-manylinux1_x86_64.whl  netifaces-0.10.9-cp36-cp36m-manylinux1_x86_64.whl  netifaces-0.10.9-cp38-cp38-manylinux1_x86_64.whl

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants