我尝试在 anaconda 环境中的 Ubuntu 22.04 上安装 pycuda,出现以下错误:
pip install pycuda
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
╰─> [153 lines of output]
*************************************************************
*** 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...
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-38
creating build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/__init__.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/driver.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/curandom.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/_mymako.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/reduction.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/gpuarray.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/characterize.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/elementwise.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/compiler.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/autoprimaryctx.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/cumath.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/tools.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/_cluda.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/autoinit.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/scan.py -> build/lib.linux-x86_64-cpython-38/pycuda
copying pycuda/debug.py -> build/lib.linux-x86_64-cpython-38/pycuda
creating build/lib.linux-x86_64-cpython-38/pycuda/gl
copying pycuda/gl/__init__.py -> build/lib.linux-x86_64-cpython-38/pycuda/gl
copying pycuda/gl/autoinit.py -> build/lib.linux-x86_64-cpython-38/pycuda/gl
creating build/lib.linux-x86_64-cpython-38/pycuda/sparse
copying pycuda/sparse/inner.py -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
copying pycuda/sparse/packeted.py -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
copying pycuda/sparse/cg.py -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
copying pycuda/sparse/__init__.py -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
copying pycuda/sparse/coordinate.py -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
copying pycuda/sparse/operator.py -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
copying pycuda/sparse/pkt_build.py -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
creating build/lib.linux-x86_64-cpython-38/pycuda/compyte
copying pycuda/compyte/__init__.py -> build/lib.linux-x86_64-cpython-38/pycuda/compyte
copying pycuda/compyte/dtypes.py -> build/lib.linux-x86_64-cpython-38/pycuda/compyte
copying pycuda/compyte/array.py -> build/lib.linux-x86_64-cpython-38/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'
/tmp/pip-build-env-h2ruo4sj/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py:266: UserWarning: Unknown distribution option: 'test_requires'
warnings.warn(msg)
warning: no files found matching 'doc/source/*.rst'
warning: no files found matching 'doc/source/conf.py'
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'
creating build/lib.linux-x86_64-cpython-38/pycuda/cuda
copying pycuda/cuda/pycuda-complex-impl.hpp -> build/lib.linux-x86_64-cpython-38/pycuda/cuda
copying pycuda/cuda/pycuda-complex.hpp -> build/lib.linux-x86_64-cpython-38/pycuda/cuda
copying pycuda/cuda/pycuda-helpers.hpp -> build/lib.linux-x86_64-cpython-38/pycuda/cuda
copying pycuda/sparse/pkt_build_cython.pyx -> build/lib.linux-x86_64-cpython-38/pycuda/sparse
running build_ext
building '_driver' extension
creating build/temp.linux-x86_64-cpython-38
creating build/temp.linux-x86_64-cpython-38/bpl-subset
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/python
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/python/src
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/python/src/converter
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/python/src/object
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/smart_ptr
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/smart_ptr/src
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/system
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/system/src
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/thread
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/thread/src
creating build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/thread/src/pthread
creating build/temp.linux-x86_64-cpython-38/src
creating build/temp.linux-x86_64-cpython-38/src/cpp
creating build/temp.linux-x86_64-cpython-38/src/wrapper
gcc -pthread -B /home/iovi/anaconda3/envs/openmmlab/compiler_compat -Wl,--sysroot=/ -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/usr/local/cuda-11.8/include -I/tmp/pip-build-env-h2ruo4sj/overlay/lib/python3.8/site-packages/numpy/core/include -I/home/iovi/anaconda3/envs/openmmlab/include/python3.8 -c bpl-subset/bpl_subset/libs/python/src/converter/arg_to_python_base.cpp -o build/temp.linux-x86_64-cpython-38/bpl-subset/bpl_subset/libs/python/src/converter/arg_to_python_base.o
gcc: fatal error: cannot execute ‘cc1plus’: execvp: No existe el archivo o el directorio
compilation terminated.
/tmp/pip-build-env-h2ruo4sj/overlay/lib/python3.8/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'pycuda.cuda' is absent from the `packages` configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'pycuda.cuda' 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 'pycuda.cuda' 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 'pycuda.cuda' to be distributed and are
already explicitly excluding 'pycuda.cuda' 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)
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 pycuda
Failed to build pycuda
ERROR: Could not build wheels for pycuda, which is required to install pyproject.toml-based projects
我已经安装了cuda 11.8:
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
我的路径如下:
/usr/local/cuda-11.8/bin:/home/iovi/anaconda3/envs/openmmlab/bin:/home/iovi/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
我的正在工作。
试试这个:
pip install pipwin
pipwin install pycuda