Can't install pycuda on jetson nano

i try to install pycuda but terminal show this error

Defaulting to user installation because normal site-packages is not writeable
Collecting pycuda
Using cached pycuda-2021.1.tar.gz (1.7 MB)
Installing build dependencies … done
Getting requirements to build wheel … done
Preparing metadata (pyproject.toml) … done
Collecting pytools>=2011.2
Using cached pytools-2022.1.9-py2.py3-none-any.whl
Collecting mako
Using cached Mako-1.2.0-py3-none-any.whl (78 kB)
Collecting appdirs>=1.4.0
Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: typing-extensions>=4.0 in ./.local/lib/python3.9/site-packages (from pytools>=2011.2->pycuda) (4.2.0)
Collecting platformdirs>=2.2.0
Using cached platformdirs-2.5.2-py3-none-any.whl (14 kB)
Collecting MarkupSafe>=0.9.2
Using cached MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (26 kB)
Building wheels for collected packages: pycuda
Building wheel for pycuda (pyproject.toml) … error
error: subprocess-exited-with-error

× Building wheel for pycuda (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [147 lines of output]
***************************************************************
*** WARNING: nvcc not in path.
*** May need to set CUDA_INC_DIR for installation to succeed.
***************************************************************
*************************************************************
*** I have detected that you have not run configure.py.
*************************************************************
*** Additionally, no global config files were found.
*** I will go ahead with the default configuration.
*** In all likelihood, this will not work out.
***
*** See README_SETUP.txt for more information.
***
*** If the build does fail, just re-run configure.py with the
*** correct arguments, and then retry. Good luck!
*************************************************************
*** HIT Ctrl-C NOW IF THIS IS NOT WHAT YOU WANT
*************************************************************
Continuing in 10 seconds…
Continuing in 9 seconds…
Continuing in 8 seconds…
Continuing in 7 seconds…
Continuing in 6 seconds…
Continuing in 5 seconds…
Continuing in 4 seconds…
Continuing in 3 seconds…
Continuing in 2 seconds…
Continuing in 1 seconds…
/tmp/pip-build-env-9u5ovmop/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:257: UserWarning: Unknown distribution option: ‘test_requires’
warnings.warn(msg)

  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-aarch64-cpython-39
  creating build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/compiler.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/cumath.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/__init__.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/debug.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/curandom.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/driver.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/tools.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/elementwise.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/autoinit.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/reduction.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/autoprimaryctx.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/_cluda.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/characterize.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/_mymako.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/scan.py -> build/lib.linux-aarch64-cpython-39/pycuda
  copying pycuda/gpuarray.py -> build/lib.linux-aarch64-cpython-39/pycuda
  creating build/lib.linux-aarch64-cpython-39/pycuda/gl
  copying pycuda/gl/__init__.py -> build/lib.linux-aarch64-cpython-39/pycuda/gl
  copying pycuda/gl/autoinit.py -> build/lib.linux-aarch64-cpython-39/pycuda/gl
  creating build/lib.linux-aarch64-cpython-39/pycuda/sparse
  copying pycuda/sparse/__init__.py -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  copying pycuda/sparse/pkt_build.py -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  copying pycuda/sparse/operator.py -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  copying pycuda/sparse/cg.py -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  copying pycuda/sparse/coordinate.py -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  copying pycuda/sparse/packeted.py -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  copying pycuda/sparse/inner.py -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  creating build/lib.linux-aarch64-cpython-39/pycuda/compyte
  copying pycuda/compyte/__init__.py -> build/lib.linux-aarch64-cpython-39/pycuda/compyte
  copying pycuda/compyte/array.py -> build/lib.linux-aarch64-cpython-39/pycuda/compyte
  copying pycuda/compyte/dtypes.py -> build/lib.linux-aarch64-cpython-39/pycuda/compyte
  running egg_info
  writing pycuda.egg-info/PKG-INFO
  writing dependency_links to pycuda.egg-info/dependency_links.txt
  writing requirements to pycuda.egg-info/requires.txt
  writing top-level names to pycuda.egg-info/top_level.txt
  reading manifest file 'pycuda.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'doc/source/_static/*.css'
  warning: no files found matching 'doc/source/_templates/*.html'
  warning: no files found matching '*.cpp' under directory 'bpl-subset/bpl_subset/boost'
  warning: no files found matching '*.html' under directory 'bpl-subset/bpl_subset/boost'
  warning: no files found matching '*.inl' under directory 'bpl-subset/bpl_subset/boost'
  warning: no files found matching '*.txt' under directory 'bpl-subset/bpl_subset/boost'
  warning: no files found matching '*.h' under directory 'bpl-subset/bpl_subset/libs'
  warning: no files found matching '*.ipp' under directory 'bpl-subset/bpl_subset/libs'
  warning: no files found matching '*.pl' under directory 'bpl-subset/bpl_subset/libs'
  adding license file 'LICENSE'
  writing manifest file 'pycuda.egg-info/SOURCES.txt'
  /tmp/pip-build-env-9u5ovmop/overlay/lib/python3.9/site-packages/setuptools/command/build_py.py:153: SetuptoolsDeprecationWarning:     Installing 'pycuda.cuda' as data is deprecated, please list it in `packages`.
      !!
  
  
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'pycuda.cuda' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
  
      'pycuda.cuda' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
  
      Please make sure that 'pycuda.cuda' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
  
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  
  
  !!
  
    check.warn(importable)
  creating build/lib.linux-aarch64-cpython-39/pycuda/cuda
  copying pycuda/cuda/pycuda-complex-impl.hpp -> build/lib.linux-aarch64-cpython-39/pycuda/cuda
  copying pycuda/cuda/pycuda-complex.hpp -> build/lib.linux-aarch64-cpython-39/pycuda/cuda
  copying pycuda/cuda/pycuda-helpers.hpp -> build/lib.linux-aarch64-cpython-39/pycuda/cuda
  copying pycuda/sparse/pkt_build_cython.pyx -> build/lib.linux-aarch64-cpython-39/pycuda/sparse
  running build_ext
  building '_driver' extension
  creating build/temp.linux-aarch64-cpython-39
  creating build/temp.linux-aarch64-cpython-39/bpl-subset
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/python
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/python/src
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/python/src/converter
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/python/src/object
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/smart_ptr
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/smart_ptr/src
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/system
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/system/src
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/thread
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/thread/src
  creating build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/thread/src/pthread
  creating build/temp.linux-aarch64-cpython-39/src
  creating build/temp.linux-aarch64-cpython-39/src/cpp
  creating build/temp.linux-aarch64-cpython-39/src/wrapper
  aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION=1 -DBOOST_PYTHON_SOURCE=1 -Dboost=pycudaboost -DBOOST_THREAD_DONT_USE_CHRONO=1 -DPYGPU_PACKAGE=pycuda -DPYGPU_PYCUDA=1 -DHAVE_CURAND=1 -Isrc/cpp -Ibpl-subset/bpl_subset -I/tmp/pip-build-env-9u5ovmop/overlay/lib/python3.9/site-packages/numpy/core/include -I/usr/include/python3.9 -c bpl-subset/bpl_subset/libs/python/src/converter/arg_to_python_base.cpp -o build/temp.linux-aarch64-cpython-39/bpl-subset/bpl_subset/libs/python/src/converter/arg_to_python_base.o
  In file included from bpl-subset/bpl_subset/boost/python/detail/prefix.hpp:13:0,
                   from bpl-subset/bpl_subset/boost/python/handle.hpp:8,
                   from bpl-subset/bpl_subset/boost/python/converter/arg_to_python_base.hpp:7,
                   from bpl-subset/bpl_subset/libs/python/src/converter/arg_to_python_base.cpp:6:
  bpl-subset/bpl_subset/boost/python/detail/wrap_python.hpp:50:11: fatal error: pyconfig.h: No such file or directory
   # include <pyconfig.h>
             ^~~~~~~~~~~~
  compilation terminated.
  error: command '/usr/bin/aarch64-linux-gnu-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 pycuda
Failed to build pycuda
ERROR: Could not build wheels for pycuda, which is required to install pyproject.toml-based projects

Hi,
I’m not sure if this will work for you but you can try this as it worked for me when I had the same error yesterday.

Open terminal on Jetson Nano, and write the following commands.

  1. echo “export CPATH=$CPATH:/usr/local/cuda-10.0/targets/aarch64-linux/include” >> ~./bashrc

  2. echo “export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.0/targets/aarch64-linux/lib” >> ~./bashrc

  3. source ~./bashrc

  4. pip3 install pycuda —user

Note: where cuda-10.0 has been mentioned be sure to change it to your own version.
For eg. I had cuda-10.2 so just change cuda-10.0 to cuda-10.2 in the commands.
Hopefully this works for you!