执行:pip install pycuda
出现:Building wheel for pycuda (PEP 517) ... error
Building wheels for collected packages: pycuda, pytools
Building wheel for pycuda (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3.8 /usr/local/lib/python3.8/dist-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmp8diqrj_c
cwd: /tmp/pip-install-xt280urn/pycuda_5d4c81cb559b4a6fa572a62bf9757598
Complete output (101 lines):
*************************************************************
*** 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 1 seconds...
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/pycuda
copying pycuda/cumath.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/compiler.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/_cluda.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/elementwise.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/characterize.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/tools.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/debug.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/autoinit.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/autoprimaryctx.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/scan.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/reduction.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/_mymako.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/driver.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/curandom.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/__init__.py -> build/lib.linux-x86_64-3.8/pycuda
copying pycuda/gpuarray.py -> build/lib.linux-x86_64-3.8/pycuda
creating build/lib.linux-x86_64-3.8/pycuda/gl
copying pycuda/gl/autoinit.py -> build/lib.linux-x86_64-3.8/pycuda/gl
copying pycuda/gl/__init__.py -> build/lib.linux-x86_64-3.8/pycuda/gl
creating build/lib.linux-x86_64-3.8/pycuda/sparse
copying pycuda/sparse/packeted.py -> build/lib.linux-x86_64-3.8/pycuda/sparse
copying pycuda/sparse/operator.py -> build/lib.linux-x86_64-3.8/pycuda/sparse
copying pycuda/sparse/coordinate.py -> build/lib.linux-x86_64-3.8/pycuda/sparse
copying pycuda/sparse/cg.py -> build/lib.linux-x86_64-3.8/pycuda/sparse
copying pycuda/sparse/pkt_build.py -> build/lib.linux-x86_64-3.8/pycuda/sparse
copying pycuda/sparse/inner.py -> build/lib.linux-x86_64-3.8/pycuda/sparse
copying pycuda/sparse/__init__.py -> build/lib.linux-x86_64-3.8/pycuda/sparse
creating build/lib.linux-x86_64-3.8/pycuda/compyte
copying pycuda/compyte/array.py -> build/lib.linux-x86_64-3.8/pycuda/compyte
copying pycuda/compyte/dtypes.py -> build/lib.linux-x86_64-3.8/pycuda/compyte
copying pycuda/compyte/__init__.py -> build/lib.linux-x86_64-3.8/pycuda/compyte
running egg_info
/usr/local/lib/python3.8/dist-packages/setuptools/_distutils/dist.py:275: 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'
writing manifest file 'pycuda.egg-info/SOURCES.txt'
creating build/lib.linux-x86_64-3.8/pycuda/cuda
copying pycuda/cuda/pycuda-complex-impl.hpp -> build/lib.linux-x86_64-3.8/pycuda/cuda
copying pycuda/cuda/pycuda-complex.hpp -> build/lib.linux-x86_64-3.8/pycuda/cuda
copying pycuda/cuda/pycuda-helpers.hpp -> build/lib.linux-x86_64-3.8/pycuda/cuda
copying pycuda/sparse/pkt_build_cython.pyx -> build/lib.linux-x86_64-3.8/pycuda/sparse
running build_ext
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/bpl-subset
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/python
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/converter
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/smart_ptr
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/smart_ptr/src
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/system
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/system/src
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/thread
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/thread/src
creating build/temp.linux-x86_64-3.8/bpl-subset/bpl_subset/libs/thread/src/pthread
creating build/temp.linux-x86_64-3.8/src
creating build/temp.linux-x86_64-3.8/src/cpp
creating build/temp.linux-x86_64-3.8/src/wrapper
x86_64-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/usr/local/cuda/include -I/usr/local/lib/python3.8/dist-packages/numpy/core/include -I/usr/include/python3.8 -c bpl-subset/bpl_subset/libs/python/src/converter/arg_to_python_base.cpp -o build/temp.linux-x86_64-3.8/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
^~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
----------------------------------------
ERROR: Failed building wheel for pycuda
Building wheel for pytools (setup.py) ... done
Created wheel for pytools: filename=pytools-2022.1.12-py2.py3-none-any.whl size=65018 sha256=2f79761cd040baf74f025c6e24389b80090418b274cfa64973308c7e1f2748f1
Stored in directory: /tmp/pip-ephem-wheel-cache-5i9u00g4/wheels/d6/c4/2a/41a750b89bfe174e3f6ee7c874e2c8595b94d2f924dcf53755
Successfully built pytools
Failed to build pycuda
ERROR: Could not build wheels for pycuda which use PEP 517 and cannot be installed directly
使用:pip install pycuda --no-binary :all:
不解决问题。
从源码编译,解决问题。
1、下载 pycuda-2021.1.tar.gz
2、tar xfz pycuda-2021.1.tar.gz
3、cd pycuda-2021.1
4、python3 configure.py --cuda-root=/usr/local/cuda
5、make install
如果有找不到 pyconfig.h 的错误,就安装 python3-dev。
如果有找不到 nvcc 的错误,就 export CUDA_ROOT=/usr/local/cuda/bin。
2022-11-04:
在 安装了 python3-dev 后,直接 pip install pycuda 也会成功。
参考:
Installing PyCUDA on Linux - Andreas Klöckner's Former Wiki
pycuda -- 'CUDA_ROOT not set, and nvcc not in path.' - Stack Overflow