【问题标题】:Error installing pycuda on Mac OS Mojave: error: command 'clang' failed with exit status 1在 Mac OS Mojave 上安装 pycuda 时出错:错误:命令“clang”失败,退出状态为 1
【发布时间】:2020-04-15 06:50:29
【问题描述】:

我正在尝试使用 pip 在带有 python 3.8.1 的 Mac OS Mojave 上安装 python 包 pycuda。我写:

python -m pip install pycuda

但经过多次试验,我总是以同样的错误结束:

错误:命令“clang”失败,退出状态为 1

我做了: 导出 CC=/usr/bin/clang 导出 CXX=/usr/bin/clang++ 在我的 .profile 文件中,但这没有帮助。

终端上写的文字的最后一部分说:

90 warnings generated.
clang -bundle -undefined dynamic_lookup -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk build/temp.macosx-10.14-x86_64-3.8/src/cpp/cuda.o build/temp.macosx-10.14-x86_64-3.8/src/cpp/bitlog.o build/temp.macosx-10.14-x86_64-3.8/src/wrapper/wrap_cudadrv.o build/temp.macosx-10.14-x86_64-3.8/src/wrapper/mempool.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/converter/builtin_converters.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/converter/type_id.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/converter/from_python.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/converter/registry.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/converter/arg_to_python_base.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/life_support.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/iterator.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/stl_iterator.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/function_doc_signature.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/pickle_support.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/function.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/enum.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/class.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object/inheritance.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/wrapper.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object_protocol.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/long.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/module.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/slice.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/dict.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/exec.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/numeric.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/object_operators.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/tuple.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/list.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/errors.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/str.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/python/src/import.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/smart_ptr/src/sp_collector.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/smart_ptr/src/sp_debug_hooks.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/system/src/error_code.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/thread/src/pthread/thread.o build/temp.macosx-10.14-x86_64-3.8/bpl-subset/bpl_subset/libs/thread/src/pthread/once.o build/temp.macosx-10.14-x86_64-3.8/src/wrapper/wrap_curand.o -L/Developer/NVIDIA/CUDA-10.2/lib -L/Developer/NVIDIA/CUDA-10.2/lib -L/Developer/NVIDIA/CUDA-10.2/lib/stubs -L/Developer/NVIDIA/CUDA-10.2/lib/stubs -L/usr/local/cuda/lib -L/Developer/NVIDIA/CUDA-10.2/lib -L/Developer/NVIDIA/CUDA-10.2/lib -L/Developer/NVIDIA/CUDA-10.2/lib/stubs -L/Developer/NVIDIA/CUDA-10.2/lib/stubs -L/usr/local/cuda/lib -lcuda -lcurand -o build/lib.macosx-10.14-x86_64-3.8/pycuda/_driver.cpython-38-darwin.so -Xlinker -rpath -Xlinker /Developer/NVIDIA/CUDA-10.2/lib -Xlinker -rpath -Xlinker /Developer/NVIDIA/CUDA-10.2/lib -Xlinker -rpath -Xlinker /Developer/NVIDIA/CUDA-10.2/lib/stubs -Xlinker -rpath -Xlinker /Developer/NVIDIA/CUDA-10.2/lib/stubs -Xlinker -rpath -Xlinker /usr/local/cuda/lib
ld: library not found for -lcuda
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1
----------------------------------------

错误:命令出错,退出状态为 1:/opt/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/p8/mxnrzwqj51z51zx_qql90bvr0000gn/T/pip-install-dkd5hqzy/pycuda/setup.py'"'"'; 文件='"'"'/private/var/folders/p8/mxnrzwqj51z51zx_qql90bvr0000gn/T/pip-install-dkd5hqzy/pycuda/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' 安装--record /private/var/folders/p8/mxnrzwqj51z51zx_qql90bvr0000gn/T/pip-record-efvcjkkh/install-record.txt --single-version-externally-managed --user --prefix= --compile --install- headers /Users/marce/Library/Python/3.8/include/python3.8/pycuda 检查日志以获取完整的命令输出。

【问题讨论】:

    标签: python macos


    【解决方案1】:

    这是实际的错误:

    ld: 找不到 -lcuda 的库

    编译器找不到您的 CUDA C 库。您必须先安装它,和/或确保它位于编译器可以找到它的位置。

    另请参阅this question,了解如何在 OSX 上安装 CUDA。

    如果你使用conda,你也可以这样做

    $ conda install cudatoolkit
    

    安装一个版本的 CUDA 工具包。

    【讨论】:

    • 谢谢迪翁。我仍然得到错误。我从他们的网页 (developer.nvidia.com) 安装了 CUDA,在我的 .profile 中添加了“export PATH=/Developer/NVIDIA/CUDA-10.2/bin${PATH:+:${PATH}}”和“export DYLD_LIBRARY_PATH= /Developer/NVIDIA/CUDA-10.2/lib${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}”,即使我禁用了 SIP,这显然是识别变量 DYLD_LIBRARY_PATH 所必需的。这样做之后,我再次尝试了“python -m pip install pycuda”,但我得到了同样的错误。我不知道如何让编译器找到CUDA C库。
    • 我明白了。必须从nvidia.com/es-es/drivers/cuda/mac-driver-archive 安装 CUDA 驱动程序。但是现在我的问题是,当我在 python 脚本中运行“import pycuda.autoinit”时,出现错误“pycuda._driver.LogicError: cuInit failed:”。我检查了网络并尝试了几个选项,但我仍然遇到这个问题。
    • 嗯...你确定你的 Mac 有 NVidia GPU 吗?
    • 我不确定。我怎么知道?我阅读了有关 Apple 不支持 Mojave 及更高版本的 NVIDIA CUDA 的各种线程。我不知道这是否意味着在 Mac OS X Mojave 或更高版本上无法使用 CUDA。
    • 你的电脑有 NVidia 显卡吗?您使用的是哪种 Mac?
    猜你喜欢
    • 2019-05-08
    • 1970-01-01
    • 2018-11-29
    • 2012-05-01
    • 2021-03-01
    • 2014-03-05
    • 2021-06-14
    • 2012-06-21
    • 2019-12-01
    相关资源
    最近更新 更多