Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't install ipinfo in Python 3.12 virtualenv #94

Closed
luckman212 opened this issue Nov 5, 2023 · 3 comments
Closed

Can't install ipinfo in Python 3.12 virtualenv #94

luckman212 opened this issue Nov 5, 2023 · 3 comments

Comments

@luckman212
Copy link

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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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
@luckman212
Copy link
Author

Seems like a problem with aiohttp

aio-libs/aiohttp#7739

@luckman212
Copy link
Author

Sorry, this is not a problem at all of ipinfo! Just a dependency issue.

This will be solved automatically when aiohttp ver 3.9.0 is released

For now, this fixes it...

pip install aiohttp==3.9.0b0

@luckman212
Copy link
Author

luckman212 commented Nov 18, 2023

aiohttp 3.9.0 is now officially released 🎉

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

No branches or pull requests

1 participant