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

Installation issue on MacOS - ARM chip #84

Closed
Sebadst opened this issue Jan 7, 2024 · 4 comments
Closed

Installation issue on MacOS - ARM chip #84

Sebadst opened this issue Jan 7, 2024 · 4 comments

Comments

@Sebadst
Copy link

Sebadst commented Jan 7, 2024

Hi,

I am unable to install this lib. I am reporting here what I am using and the errors I am getting. I am wondering whether I am missing something or if it's indeed expected not to be able to install it on these versions.

Python: 3.10.13
Mac OS: 14.2.1, Chip Apple M1 Pro
Poetry: 1.6.1
Issue returned (partially omitted since the output was too long):

Installing dependencies from lock file

Package operations: 1 install, 0 updates, 0 removals

  • Installing pyjson5 (1.6.5): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel
  
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-13.5-arm64-cpython-310
  creating build/lib.macosx-13.5-arm64-cpython-310/pyjson5
  copying src/pyjson5/__init__.py -> build/lib.macosx-13.5-arm64-cpython-310/pyjson5
  running egg_info
  writing src/pyjson5.egg-info/PKG-INFO
  writing dependency_links to src/pyjson5.egg-info/dependency_links.txt
  writing top-level names to src/pyjson5.egg-info/top_level.txt
  reading manifest file 'src/pyjson5.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'requires.txt'
  adding license file 'LICENSE'
  writing manifest file 'src/pyjson5.egg-info/SOURCES.txt'
  copying src/pyjson5/__init__.pyi -> build/lib.macosx-13.5-arm64-cpython-310/pyjson5
  copying src/pyjson5/py.typed -> build/lib.macosx-13.5-arm64-cpython-310/pyjson5
  running build_ext
  Compiling pyjson5.pyx because it changed.
  [1/1] Cythonizing pyjson5.pyx
  building 'pyjson5.pyjson5' extension
  creating build/temp.macosx-13.5-arm64-cpython-310
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -Isrc -I/var/folders/s9/nvj_sch51rn89b44pgzk5fpr0000gp/T/tmp2242py13/.venv/include -I/Users/seba/.pyenv/versions/3.10.13/include/python3.10 -c pyjson5.cpp -o build/temp.macosx-13.5-arm64-cpython-310/pyjson5.o -std=c++11 -O3 -fPIC -ggdb1 -pipe -fomit-frame-pointer -fstack-protector-strong
  In file included from pyjson5.cpp:58:
  In file included from /Users/seba/.pyenv/versions/3.10.13/include/python3.10/Python.h:25:
  In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:64:
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:93:16: warning: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Wnullability-completeness]
          unsigned char   *_base;
                          ^
   .....
  
                                                 ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cmath:643:17: note: declared here
  template <class _A1, class _A2>
                  ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cmath:646:58: error: expected unqualified-id
                                  std::__promote<_A1, _A2> >::type
                                                           ^
  In file included from pyjson5.cpp:1266:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cmath:833:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/type_traits:456:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_compound.h:14:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_fundamental.h:14:
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_null_pointer.h:24:49: error: use of undeclared identifier 'nullptr_t'; did you mean 'nullptr'?
  template <>          struct __is_nullptr_t_impl<nullptr_t> : public true_type {};
                                                  ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_null_pointer.h:24:49: error: template argument for template type parameter must be a type
  template <>          struct __is_nullptr_t_impl<nullptr_t> : public true_type {};
                                                  ^~~~~~~~~
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_null_pointer.h:23:17: note: template parameter is declared here
  template <class _Tp> struct __is_nullptr_t_impl       : public false_type {};
                  ^
  In file included from pyjson5.cpp:1267:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/utility:277:
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstdlib:90:5: error: <cstdlib> tried including <stdlib.h> but didn't find libc++'s <stdlib.h> header.           This usually means that your header search paths are not configured properly.           The header search paths should contain the C++ Standard Library headers before           any C Standard Library, and you are probably using compiler flags that make that           not be the case.
  #   error <cstdlib> tried including <stdlib.h> but didn't find libc++'s <stdlib.h> header. \
      ^
  In file included from pyjson5.cpp:1268:
  In file included from ./src/native.hpp:4:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/array:122:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/stdexcept:47:
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/exception:199:45: error: field has incomplete type 'exception_ptr'
      _LIBCPP_INLINE_VISIBILITY exception_ptr(nullptr_t) _NOEXCEPT : __ptr_() {}
                                              ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/exception:194:24: note: definition of 'std::exception_ptr' is not complete until the closing '}'
  class _LIBCPP_TYPE_VIS exception_ptr
                         ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/exception:199:5: error: '__abi_tag__' attribute only applies to structs, variables, functions, and namespaces
      _LIBCPP_INLINE_VISIBILITY exception_ptr(nullptr_t) _NOEXCEPT : __ptr_() {}
      ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:709:37: note: expanded from macro '_LIBCPP_INLINE_VISIBILITY'
  #  define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI
                                      ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:688:26: note: expanded from macro '_LIBCPP_HIDE_FROM_ABI'
            __attribute__((__abi_tag__(_LIBCPP_TOSTRING(_LIBCPP_VERSIONED_IDENTIFIER))))
                           ^
  In file included from pyjson5.cpp:1268:
  In file included from ./src/native.hpp:4:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/array:122:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/stdexcept:47:
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/exception:199:55: error: expected ';' at end of declaration list
      _LIBCPP_INLINE_VISIBILITY exception_ptr(nullptr_t) _NOEXCEPT : __ptr_() {}
                                                        ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  193 warnings and 20 errors generated.
  error: command '/usr/bin/clang' failed with exit code 1
  

  at ~/Library/Application Support/pypoetry/venv/lib/python3.9/site-packages/poetry/installation/chef.py:147 in _prepare
      143│ 
      144│                 error = ChefBuildError("\n\n".join(message_parts))
      145│ 
      146│             if error is not None:
    → 147│                 raise error from None
      148│ 
      149│             return path
      150│ 
      151│     def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:

Note: This error originates from the build backend, and is likely not a problem with poetry but with pyjson5 (1.6.5) not supporting PEP 517 builds. You can verify this by running 'pip wheel --use-pep517 "pyjson5 (==1.6.5)"'.

@Kijewski
Copy link
Owner

Kijewski commented Jan 7, 2024

Thank you for providing the installation log! I did not provide the pre-compiled version for your system, and the compilation fails for some reason.

I just uploaded pre-compiled versions for MacOS arm64+universal2, and for Windows ARM64. Can you please tell me if that fixes the problem for you?

@Sebadst
Copy link
Author

Sebadst commented Jan 24, 2024

sorry, stupid question surely, but how can I check that? 🙏

so far I was just trying to install the lib through a poetry install

@Kijewski
Copy link
Owner

sorry, stupid question surely, but how can I check that? 🙏

so far I was just trying to install the lib through a poetry install

I never used poetry, so I am not quite sure. Does poetry use the precompiled wheels from pypi.org? If so, then the bug should be fixed for you. If not, then probably not. :) Could you please try to install the package again?

@Sebadst
Copy link
Author

Sebadst commented Jan 24, 2024

so, when running poetry install I got the exact same error as before. However, if I now run pip wheel --no-cache-dir --use-pep517 "pyjson5 (==1.6.5)" (as suggested at the end of the command posted at the beginning), it looks like I am now able to install pyjson5-1.6.5-cp310-cp310-macosx_11_0_arm64.whl (while I wasn't before).

It looks like I can use the precompiled wheel this way, which is something I can't commit in my repo, but at least it solves my problem of not being able to run the project locally, so good enough 😄 thanks a lot!

@Sebadst Sebadst closed this as completed Jan 24, 2024
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

2 participants