Skip to content

Can't install ipinfo in Python 3.12 virtualenv #94

@luckman212

Description

@luckman212

Been using this amazing module for a long time. But now my system's Python is 3.12 and it fails to install

  • macOS 14.1
  • Python 3.12.0
~ $ mkvirtualenv foo
created virtual environment CPython3.12.0.final.0-64 in 161ms
  creator CPython3macOsBrew(dest=/Users/luke/.virtualenvs/foo, clear=False, no_vcs_ignore=False, global=True)
  seeder FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/Users/luke/Library/Application Support/virtualenv)
    added seed packages: pip==23.3.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
virtualenvwrapper.user_scripts creating /Users/luke/.virtualenvs/foo/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/luke/.virtualenvs/foo/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/luke/.virtualenvs/foo/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/luke/.virtualenvs/foo/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/luke/.virtualenvs/foo/bin/get_env_details

~ 🐍 v3.12.0 (foo) $ pip install ipinfo
Collecting ipinfo
  Using cached ipinfo-4.4.3-py3-none-any.whl.metadata (648 bytes)
Requirement already satisfied: requests in /opt/homebrew/lib/python3.12/site-packages (from ipinfo) (2.31.0)
Collecting cachetools (from ipinfo)
  Using cached cachetools-5.3.2-py3-none-any.whl.metadata (5.2 kB)
Collecting aiohttp<=4 (from ipinfo)
  Using cached aiohttp-3.8.6.tar.gz (7.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting attrs>=17.3.0 (from aiohttp<=4->ipinfo)
  Using cached attrs-23.1.0-py3-none-any.whl (61 kB)
Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /opt/homebrew/lib/python3.12/site-packages (from aiohttp<=4->ipinfo) (3.3.2)
Collecting multidict<7.0,>=4.5 (from aiohttp<=4->ipinfo)
  Using cached multidict-6.0.4-cp312-cp312-macosx_14_0_arm64.whl
Collecting async-timeout<5.0,>=4.0.0a3 (from aiohttp<=4->ipinfo)
  Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Collecting yarl<2.0,>=1.0 (from aiohttp<=4->ipinfo)
  Using cached yarl-1.9.2-cp312-cp312-macosx_14_0_arm64.whl
Collecting frozenlist>=1.1.1 (from aiohttp<=4->ipinfo)
  Using cached frozenlist-1.4.0-cp312-cp312-macosx_14_0_arm64.whl
Collecting aiosignal>=1.1.2 (from aiohttp<=4->ipinfo)
  Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Requirement already satisfied: idna<4,>=2.5 in /opt/homebrew/lib/python3.12/site-packages (from requests->ipinfo) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/homebrew/lib/python3.12/site-packages (from requests->ipinfo) (2.0.7)
Requirement already satisfied: certifi>=2017.4.17 in /opt/homebrew/lib/python3.12/site-packages (from requests->ipinfo) (2023.7.22)
Using cached ipinfo-4.4.3-py3-none-any.whl (24 kB)
Using cached cachetools-5.3.2-py3-none-any.whl (9.3 kB)
Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Building wheels for collected packages: aiohttp
  Building wheel for aiohttp (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for aiohttp (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [188 lines of output]
      *********************
      * Accelerated build *
      *********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-14-arm64-cpython-312
      creating build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_ws.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/worker.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/multipart.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_response.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/client_ws.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/test_utils.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/tracing.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_exceptions.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_middlewares.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/http_exceptions.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_app.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/streams.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_protocol.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/log.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/client.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_urldispatcher.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_request.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/http_websocket.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/client_proto.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/locks.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/__init__.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_runner.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_server.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/base_protocol.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/payload.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/client_reqrep.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/http.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_log.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/resolver.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/formdata.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/payload_streamer.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_routedef.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/connector.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/client_exceptions.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/typedefs.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/hdrs.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/web_fileresponse.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/http_writer.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/tcp_helpers.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/helpers.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/http_parser.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/cookiejar.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/pytest_plugin.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/abc.py -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      running egg_info
      writing aiohttp.egg-info/PKG-INFO
      writing dependency_links to aiohttp.egg-info/dependency_links.txt
      writing requirements to aiohttp.egg-info/requires.txt
      writing top-level names to aiohttp.egg-info/top_level.txt
      reading manifest file 'aiohttp.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching 'aiohttp' anywhere in distribution
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyd' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '*.lib' found anywhere in distribution
      warning: no previously-included files matching '*.dll' found anywhere in distribution
      warning: no previously-included files matching '*.a' found anywhere in distribution
      warning: no previously-included files matching '*.obj' found anywhere in distribution
      warning: no previously-included files found matching 'aiohttp/*.html'
      no previously-included directories found matching 'docs/_build'
      adding license file 'LICENSE.txt'
      writing manifest file 'aiohttp.egg-info/SOURCES.txt'
      copying aiohttp/_cparser.pxd -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/_find_header.pxd -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/_headers.pxi -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/_helpers.pyi -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/_helpers.pyx -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/_http_parser.pyx -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/_http_writer.pyx -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/_websocket.pyx -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      copying aiohttp/py.typed -> build/lib.macosx-14-arm64-cpython-312/aiohttp
      creating build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_cparser.pxd.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_find_header.pxd.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_helpers.pyi.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_helpers.pyx.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_http_parser.pyx.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_http_writer.pyx.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_websocket.pyx.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/hdrs.py.hash -> build/lib.macosx-14-arm64-cpython-312/aiohttp/.hash
      running build_ext
      building 'aiohttp._websocket' extension
      creating build/temp.macosx-14-arm64-cpython-312
      creating build/temp.macosx-14-arm64-cpython-312/aiohttp
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -I/Users/luke/.virtualenvs/foo/include -I/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c aiohttp/_websocket.c -o build/temp.macosx-14-arm64-cpython-312/aiohttp/_websocket.o
      aiohttp/_websocket.c:1475:17: warning: 'Py_OptimizeFlag' is deprecated [-Wdeprecated-declarations]
        if (unlikely(!Py_OptimizeFlag)) {
                      ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/pydebug.h:13:1: note: 'Py_OptimizeFlag' has been explicitly marked deprecated here
      Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag;
      ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      aiohttp/_websocket.c:2680:27: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
          return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
                                ^
      aiohttp/_websocket.c:1118:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
      #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
                                                                      ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
          Py_DEPRECATED(3.12) uint64_t ma_version_tag;
          ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      aiohttp/_websocket.c:2692:36: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
          return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
                                         ^
      aiohttp/_websocket.c:1118:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
      #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
                                                                      ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
          Py_DEPRECATED(3.12) uint64_t ma_version_tag;
          ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      aiohttp/_websocket.c:2696:56: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
          if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
                                                             ^
      aiohttp/_websocket.c:1118:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
      #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
                                                                      ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
          Py_DEPRECATED(3.12) uint64_t ma_version_tag;
          ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      aiohttp/_websocket.c:2741:9: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
              __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
              ^
      aiohttp/_websocket.c:1125:16: note: expanded from macro '__PYX_PY_DICT_LOOKUP_IF_MODIFIED'
          if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
                     ^
      aiohttp/_websocket.c:1118:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
      #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
                                                                      ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
          Py_DEPRECATED(3.12) uint64_t ma_version_tag;
          ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      aiohttp/_websocket.c:2741:9: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
              __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
              ^
      aiohttp/_websocket.c:1129:30: note: expanded from macro '__PYX_PY_DICT_LOOKUP_IF_MODIFIED'
              __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
                                   ^
      aiohttp/_websocket.c:1118:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
      #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
                                                                      ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
          Py_DEPRECATED(3.12) uint64_t ma_version_tag;
          ^
      /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      aiohttp/_websocket.c:3042:55: error: no member named 'ob_digit' in 'struct _longobject'
                  const digit* digits = ((PyLongObject*)x)->ob_digit;
                                        ~~~~~~~~~~~~~~~~~~  ^
      aiohttp/_websocket.c:3097:55: error: no member named 'ob_digit' in 'struct _longobject'
                  const digit* digits = ((PyLongObject*)x)->ob_digit;
                                        ~~~~~~~~~~~~~~~~~~  ^
      aiohttp/_websocket.c:3238:55: error: no member named 'ob_digit' in 'struct _longobject'
                  const digit* digits = ((PyLongObject*)x)->ob_digit;
                                        ~~~~~~~~~~~~~~~~~~  ^
      aiohttp/_websocket.c:3293:55: error: no member named 'ob_digit' in 'struct _longobject'
                  const digit* digits = ((PyLongObject*)x)->ob_digit;
                                        ~~~~~~~~~~~~~~~~~~  ^
      aiohttp/_websocket.c:3744:47: error: no member named 'ob_digit' in 'struct _longobject'
          const digit* digits = ((PyLongObject*)b)->ob_digit;
                                ~~~~~~~~~~~~~~~~~~  ^
      6 warnings and 5 errors generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for aiohttp
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions