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

[BUG]: max/examples/inference/bert-python-torchscript's run.sh can not work on Arch Linux gcc 14.2.1 #231

Open
dlintw opened this issue Sep 21, 2024 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@dlintw
Copy link

dlintw commented Sep 21, 2024

Bug description

Just follow the guide https://docs.modular.com/max/get-started.
but run.sh stopped on
python3 -m pip install -r requirements.txt

Using cached tritonclient-2.44.0-py3-none-manylinux1_x86_64.whl (12.5 MB)
Building wheels for collected packages: geventhttpclient
Building wheel for geventhttpclient (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [65 lines of output]
warning: no previously-included files matching 'pycache' found anywhere in distribution
warning: no previously-included files matching '*.py[co]' found anywhere in distribution
warning: no files found matching 'LICENSE-MIT'
warning: no files found matching 'CHANGELOG'
/home/dlin/prj/max/examples/inference/bert-python-torchscript/.magic/envs/default/lib/python3.12/site-packages/setuptools/command/build_py.py:218: _Warning: Package 'geventhttpclient.tests' is absent from the packages configuration.
!!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'geventhttpclient.tests' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.
  
          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'geventhttpclient.tests' is explicitly added
          to the `packages` configuration field.
  
          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).
  
          You can read more about "package discovery" on setuptools documentation page:
  
          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
  
          If you don't want 'geventhttpclient.tests' to be distributed and are
          already explicitly excluding 'geventhttpclient.tests' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.
  
          You can read more about "package data files" on setuptools documentation page:
  
          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html
  
  
          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************
  
  !!
    check.warn(importable)
  ext/_parser.c: In function ‘on_message_complete’:
  ext/_parser.c:48:32: error: passing argument 1 of ‘PyObject_HasAttrString’ from incompatible pointer type [-Wincompatible-pointer-types]
     48 |     if (PyObject_HasAttrString(self, "_on_message_complete")) {
        |                                ^~~~
        |                                |
        |                                PyHTTPResponseParser *
  In file included from /home/dlin/prj/max/examples/inference/bert-python-torchscript/.magic/envs/default/include/python3.12/Python.h:44,
                   from ext/_parser.c:2:
  /home/dlin/prj/max/examples/inference/bert-python-torchscript/.magic/envs/default/include/python3.12/object.h:409:40: note: expected ‘PyObject *’ {aka ‘struct _object *’} but argument is of type ‘PyHTTPResponseParser *’
    409 | PyAPI_FUNC(int) PyObject_HasAttrString(PyObject *, const char *);
        |                                        ^~~~~~~~~~
  ext/_parser.c:49:53: error: passing argument 1 of ‘PyObject_GetAttrString’ from incompatible pointer type [-Wincompatible-pointer-types]
     49 |         PyObject* callable = PyObject_GetAttrString(self, "_on_message_complete");
        |                                                     ^~~~
        |                                                     |
        |                                                     PyHTTPResponseParser *
  /home/dlin/prj/max/examples/inference/bert-python-torchscript/.magic/envs/default/include/python3.12/object.h:407:47: note: expected ‘PyObject *’ {aka ‘struct _object *’} but argument is of type ‘PyHTTPResponseParser *’
    407 | PyAPI_FUNC(PyObject *) PyObject_GetAttrString(PyObject *, const char *);
        |                                               ^~~~~~~~~~
  error: command '/usr/bin/gcc' 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 geventhttpclient
Running setup.py clean for geventhttpclient
Failed to build geventhttpclient
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (geventhttpclient)

$ python --version
Python 3.12.5

$ gcc --version
gcc (GCC) 14.2.1 20240910

Steps to reproduce

ls -l ~/.local/lib/arch-mojo/                                                                    (BERT Python Torchscript) 
total 472
-rw-r--r-- 1 dlin dlin 216640 Sep 21 17:13 libedit.so.2
-rw-r--r-- 1 dlin dlin  73072 Sep 21 17:13 libform.so.6
-rw-r--r-- 1 dlin dlin 165808 Sep 21 17:13 libncurses.so.6
-rw-r--r-- 1 dlin dlin  22528 Sep 21 17:13 libpanel.so.6
  • If applicable, add screenshots to help explain the problem.
  • Include anything else that might help us debug the issue.

System information

- What OS did you do install MAX on ? 
Arch Linux
- Provide version information for MAX by pasting the output of max -v` 
max 24.5.0 (e8aacb95)
Modular version 24.5.0
- Provide version information for Mojo by pasting the output of mojo -v`
mojo 24.5.0 (e8aacb95)
- Provide Modular CLI version by pasting the output of `modular -v`
magic 0.3.0
@dlintw dlintw added the bug Something isn't working label Sep 21, 2024
@NickPaul41
Copy link

I received the same error on Fedora 40.

@Ahajha
Copy link

Ahajha commented Oct 21, 2024

For this specific example I believe this error should no longer occur - most examples no longer include a requirements.txt and instead pull the whole environment from Conda (or at least most of it).

@HamxAnwar
Copy link

I had the same issues. It works if we choose mojo environment than python environment. The issue lies in python environment and not mojo.
Note: I have not checked language environments other than python and mojo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants