2

我在装有 python 2.7(32 位)和 pycuda 的 Windows 机器上安装了 cuda 7.5 whl。运行示例程序以测试 pycuda 时出现错误。

Traceback (most recent call last):
  File "C:\Users\newbie\Desktop\roo.py", line 82, in <module>
    """)
  File "C:\Python27\lib\site-packages\pycuda\compiler.py", line 265, in __init__
    arch, code, cache_dir, include_dirs)
  File "C:\Python27\lib\site-packages\pycuda\compiler.py", line 255, in compile
    return compile_plain(source, options, keep, nvcc, cache_dir, target)
  File "C:\Python27\lib\site-packages\pycuda\compiler.py", line 137, in compile_plain
    stderr=stderr.decode("utf-8", "replace"))
pycuda.driver.CompileError: nvcc compilation of c:\users\newbie\appdata\local\temp\tmplluyeq\kernel.cu failed
[command: nvcc --cubin -arch sm_35 -m32 -Ic:\python27\lib\site-packages\pycuda\cuda kernel.cu]
[stdout:
kernel.cu

]
[stderr:
'C:\Program' is not recognized as an internal or external command,

可能的解决方案是什么。请帮忙 !

4

1 回答 1

1

由于知识有限,我的第一个猜测是,在包含 C:\Program Files\anything 的路径中 Program 之后的空格没有得到正确处理。

编辑:包括独立于链接的解决方案。

您可能需要转义文件路径中的空格。虽然,由于主要使用 linux,我不确定 Windows 斜线。示例 C:/Program\ Files/foo/bar.exe

另一种方法可能是在路径周围加上引号。C:\"Program files"\foo\bar.exe 或 "C:\Program files\foo\bar.exe"

第三个选项可以用十六进制替换空格,例如 C:\Program%20files\foo\bar.exe 中的 %20。在 c++ 中,我认为您可以用 \u0020 替换空格。因此,这种替换方法也可能是一种途径。

这篇文章的建议答案可能会有所帮助:

https://superuser.com/questions/432980/how-to-call-a-program-that-c​​ontains- space-in-filename 在此处输入链接描述

于 2018-11-28T16:29:39.593 回答