C++;python支持的C++;11(MinGW和MSVC)(也是cl.exe致命错误)

C++;python支持的C++;11(MinGW和MSVC)(也是cl.exe致命错误),python,c++11,gcc,visual-c++,compiler-errors,Python,C++11,Gcc,Visual C++,Compiler Errors,我正在尝试从setup.py安装python包。 其实这个, 我使用python 3.6(anaconda,内置于Visual Studio 2017中) 我拥有Visual Studio 2017并安装了MinGW: C:\MinGW\bin>gcc --version gcc (MinGW.org GCC-6.3.0-1) 6.3.0 然后我使用: python setup.py install 并获取下一个错误消息: 错误:“线程”不是“std”的成员 我发现这意味着我需要使用C

我正在尝试从
setup.py
安装python包。 其实这个, 我使用python 3.6(anaconda,内置于Visual Studio 2017中)

我拥有Visual Studio 2017并安装了MinGW:

C:\MinGW\bin>gcc --version
gcc (MinGW.org GCC-6.3.0-1) 6.3.0
然后我使用:

python setup.py install
并获取下一个错误消息:

错误:“线程”不是“std”的成员

我发现这意味着我需要使用C++11特性。好啊但是怎么做呢? 我试图更改python目录中的文件
distutils.cfg
,以使用下一个编译器:

mingw32
msvc
但是对于
msvc
获取另一个错误:

错误C2039:“to_字符串”:不是“std”的成员


我找到了一些信息,添加了
-std=c++11
以使用一些c++11功能,但是我不知道在哪里以及如何使用它!安装后是否需要在python shell中编写它?或者在distutils.cfg中?我尝试了这两种方法,得到了:

错误:python的选项-s不可识别-->

错误:不知道如何在具有的“nt”平台上编译C/C++代码 'msvc-std=c++11'编译器-->for distutils.cfg


很久以后,我找到了一个解决办法。 问题是我没有正确安装MSVC,并且(重要的)没有将其添加到路径变量中。 因此,正确的排序是:

  • 使用Visual Studio安装程序安装下一个工具(您可以在此处获得免费版本:):
    • MSBuild
    • 基本组件Visual Studio C++
    • VC++2017版本15.9 v14.16最新v141工具
    • CMake的Visual C++工具< /LI>
    • C++/CLI支持
    • 适用于Windows 10的SDK(10.0.17134.0)
    • CMake和Linux
    • 的Visual C++工具
    • VC++2017 15.4/15.6的工具箱v14.13和14.11 这里有一点困难:有时包的名称会随着VisualStudio安装程序版本的不同而变化,我有非英语版本,所以我手动翻译了它们的名称。也许你不需要所有这些,但这套是为我工作的
  • 现在您已经有了MSVC编译器,我们需要告诉python使用它:将cl.exe路径添加到Windows中的路径变量(通常位于此处):
    C:\ProgramFiles(x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
  • 这解决了使用Windows时大量python包的问题。但您需要为此安装大型应用程序(几个GBs)