Python 导入时加载编译器库时出错否:致命错误C1083

Python 导入时加载编译器库时出错否:致命错误C1083,python,theano,nvcc,theano-cuda,Python,Theano,Nvcc,Theano Cuda,我在Python环境中尝试将Theano与我的GPU一起使用几天。 导入序号时,我得到以下错误: d:\anaconda2\include\pyconfig.h(239) : fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory 我试图在PYTHONPATH、PATH和.theanoc.txt中包含“D:\Anaconda2\MinGW\x86_64-w64-mingw32\inc

我在Python环境中尝试将Theano与我的GPU一起使用几天。 导入序号时,我得到以下错误:

d:\anaconda2\include\pyconfig.h(239) : fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
我试图在PYTHONPATH、PATH和.theanoc.txt中包含“D:\Anaconda2\MinGW\x86_64-w64-mingw32\include”(此文件夹包含“pyconfig.h”),并显示相同的错误消息

你有没有办法将anaconda/cuda/nvcc连接到Theano中的编译器

以下是我的配置:

  • 操作系统:Windows7
  • GPU:GeForce GTX 950
  • cl.exe:D:\Program Files(x86)\Microsoft Visual Studio 11.0\VC\bin
  • nvcc.exe:C:\Program Files\NVIDIA GPU计算工具包\CUDA\v8.0\bin
  • PythonIDE:Anaconda2中的Spyder,在Python2中
  • Theano 0.8.2
我可以用CPU“导入theano”,但我想用GPU进行计算

键入“import theano”(设备=gpu)后,我可以看到控制台窗口在显示错误之前启动“nvcc.exe”

我用Visual Studio 2012测试了CUDA,它正在工作,例如,“双边过滤器”在Visual Studio中工作,没有错误:

Found 1 CUDA Capable device(s) supporting CUDA
Device 0: "GeForce GTX 950"
CUDA Runtime Version: 8.0
CUDA Compute Capability: 5.2
...
Running Standard Demonstration with GLUT loop...
  • 这是我的theanoc.txt文件(无论是否使用[nvcc]和[cuda],都会出现相同的错误)

  • 这是我的路

    D:\Anaconda2\MinGW\x86_64-w64-mingw32\include
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
    D:\Anaconda2
    D:\Anaconda2\Scripts
    D:\Anaconda2\Library\bin
    C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\
    C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
    
  • 这是我的蟒蛇

    D:\Anaconda2\MinGW\x86_64-w64-mingw32\include
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
    
  • 以下是在Spyder中键入“import theano”(theanoc.txt中的device=gpu)后的完整错误消息:

    1#定义
    2.
    3#包括
    4#包括
    5#包括“theano_mod_helper.h”
    6.
    7#包括
    8#包括
    ...
    5358 /*
    5359局部变量:
    5360模式:c++
    5361 c-基本偏移量:4
    5362 c文件样式:“stroustrup”
    5363缩进制表符模式:无
    5364填充列:79
    5365结束:
    5366 */
    5367//vim:filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=79:
    5368
    ===============================
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h:警告C4819:该文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(849):警告C4819:文件包含无法在当前代码页(936)中表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(1787):警告C4819:该文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(2637):警告C4819:文件包含无法在当前代码页(936)中表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(3492):警告C4819:文件包含无法在当前代码页(936)中表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(4431):警告C4819:文件包含无法在当前代码页(936)中表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(5345):警告C4819:文件包含无法在当前代码页(936)中表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(6252):警告C4819:文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7142):警告C4819:文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7956):警告C4819:文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_functions.h:警告C4819:该文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_functions.h(774):警告C4819:文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_functions.h(1618):警告C4819:文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_double_functions。h:警告C4819:文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\sm_20_intrinsics.h:警告C4819:文件包含无法在当前代码页(936)中表示的字符。以Unicode格式保存文件以防止数据丢失
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\sm_20_intrinsics.h(943):警告C4819:该文件包含当前代码页(936)中无法表示的字符。以Unicode格式保存文件以防止数据丢失
    d:\anaconda2\include\pyconfig.h(239):致命错误C1083:无法打开包含文件:“basetsd.h”:没有这样的文件或目录
    错误(theano.sandbox.cuda):未能编译cuda_ndarray.cu:('nvc
    
    D:\Anaconda2\MinGW\x86_64-w64-mingw32\include
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
    
    1 #define _CUDA_NDARRAY_C
    2 
    3 #include <Python.h>
    4 #include <structmember.h>
    5 #include "theano_mod_helper.h"
    6 
    7 #include <numpy/arrayobject.h>
    8 #include <iostream>
    ...
    5358 /*
    5359   Local Variables:
    5360   mode:c++
    5361   c-basic-offset:4
    5362   c-file-style:"stroustrup"
    5363   indent-tabs-mode:nil
    5364   fill-column:79
    5365   End:
    5366 */
    5367 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=79 :
    5368 
    ===============================
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(849) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(1787) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(2637) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(3492) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(4431) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(5345) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(6252) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7142) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7956) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_functions.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_functions.h(774) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_functions.h(1618) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\device_double_functions.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\sm_20_intrinsics.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\sm_20_intrinsics.h(943) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
    d:\anaconda2\include\pyconfig.h(239) : fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
    ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return status', 2, 'for cmd', 'nvcc -shared -O3 -LD:\\Anaconda\\libs -use_fast_math -Xlinker /DEBUG -D HAVE_ROUND -m64 -Xcompiler -DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,/Zi,/MD -ID:\\Anaconda2\\lib\\site-packages\\theano\\sandbox\\cuda -ID:\\Anaconda2\\lib\\site-packages\\numpy\\core\\include -ID:\\Anaconda2\\include -ID:\\Anaconda2\\lib\\site-packages\\theano\\gof -o C:\\Users\\Administrator\\AppData\\Local\\Theano\\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.13-64\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LD:\\Anaconda2\\libs -LD:\\Anaconda2 -lcublas -lpython27 -lcudart')
    WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available  (error: cuda unavailable)
    nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
    mod.cu
    
    ['nvcc', '-shared', '-O3', '-LD:\\Anaconda\\libs', '-use_fast_math', '-Xlinker', '/DEBUG', '-D HAVE_ROUND', '-m64', '-Xcompiler', '-DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,/Zi,/MD', '-ID:\\Anaconda2\\lib\\site-packages\\theano\\sandbox\\cuda', '-ID:\\Anaconda2\\lib\\site-packages\\numpy\\core\\include', '-ID:\\Anaconda2\\include', '-ID:\\Anaconda2\\lib\\site-packages\\theano\\gof', '-o', 'C:\\Users\\Administrator\\AppData\\Local\\Theano\\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.13-64\\cuda_ndarray\\cuda_ndarray.pyd', 'mod.cu', '-LD:\\Anaconda2\\libs', '-LD:\\Anaconda2', '-lcublas', '-lpython27', '-lcudart']
    
    C:\Windows\System32
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64
    D:\Anaconda2
    D:\Anaconda2\Scripts
    D:\Anaconda2\Library\bin
    
    [global]
    device=gpu
    floatx = float32
    
    ERROR: Cannot determine the location of the VS Common Tools folder.