Python 3.x 模仿visualc++;使用MinGW或其他C++;编译器(用于基于Visual C+;+;)的Python包) 有没有办法使用MIW作为MS Visual C++的替代品?很多Python包需要安装VS C++:4.5 GB的磁盘空间!MinGW只需要450mb,并且达到了编译C/C++的相同目标

Python 3.x 模仿visualc++;使用MinGW或其他C++;编译器(用于基于Visual C+;+;)的Python包) 有没有办法使用MIW作为MS Visual C++的替代品?很多Python包需要安装VS C++:4.5 GB的磁盘空间!MinGW只需要450mb,并且达到了编译C/C++的相同目标,python-3.x,windows,visual-c++,visual-studio-code,mingw,Python 3.x,Windows,Visual C++,Visual Studio Code,Mingw,我使用VisualStudio代码,我试图避免在下面提出的微软Visual C++安装)->也可以安装C++的构建工具: 也许有一个技巧需要用MinGW来模拟MS VisualC++,这样Python包直接找到MIW编译器就像是MS VisualC++一样。 也许向lib目录添加符号链接并添加一些系统变量路径 我的问题与我的工作密切相关 我安装一个需要MS VisualC++的包时所遇到的错误,例如安装 PIP安装dTAuthOuts >: creating build\temp.win-a

我使用VisualStudio代码,我试图避免在下面提出的微软Visual C++安装)->也可以安装C++的构建工具:

也许有一个技巧需要用MinGW来模拟MS VisualC++,这样Python包直接找到MIW编译器就像是MS VisualC++一样。 也许向lib目录添加符号链接并添加一些系统变量路径

我的问题与我的工作密切相关

<>我安装一个需要MS VisualC++的包时所遇到的错误,例如安装<代码> PIP安装dTAuthOuts >:

  creating build\temp.win-amd64-3.7\Release\dtaidistance
  C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Admin\Anaconda3\lib\site-packages\numpy\core\include -IC:\Users\Admin\Anaconda3\include -IC:\Users\Admin\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.26.28801\include" /Tcdtaidistance/dtw_c.c /Fobuild\temp.win-amd64-3.7\Release\dtaidistance/dtw_c.obj /openmp /Ox /fp:fast /favor:INTEL64 /Og
  cl : Befehlszeile warning D9035 : Die Option "Og" ist veraltet und wird in einer der n„chsten Versionen entfernt.
  dtw_c.c
  C:\Users\Admin\Anaconda3\include\pyconfig.h(59): fatal error C1083: Datei (Include) kann nicht ge”ffnet werden: "io.h": No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.26.28801\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
  ----------------------------------------
  ERROR: Failed building wheel for dtaidistance
  Running setup.py clean for dtaidistance
Failed to build dtaidistance
Installing collected packages: dtaidistance
  Running setup.py install for dtaidistance ... error
    ERROR: Command errored out with exit status 1:
     command: 'C:\Users\Admin\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Admin\\AppData\\Local\\Temp\\pip-install-5lb8uekg\\dtaidistance\\setup.py'"'"'; __file__='"'"'C:\\Users\\Admin\\AppData\\Local\\Temp\\pip-install-5lb8uekg\\dtaidistance\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Admin\AppData\Local\Temp\pip-record-dzfe2cwr\install-record.txt' --single-version-externally-managed --compile
         cwd: C:\Users\Admin\AppData\Local\Temp\pip-install-5lb8uekg\dtaidistance\
仅安装MSVC(1.8 GB)后-仅此一项,作为测试,以查看这是否已是我所需的全部:

我们看到安装仍然失败,但错误略有变化,因为至少
错误:失败的dtaidistance构建控制盘现在已消失,请参见以下屏幕截图:

    creating build\temp.win-amd64-3.7\Release\dtaidistance
    C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Admin\Anaconda3\lib\site-packages\numpy\core\include -IC:\Users\Admin\Anaconda3\include -IC:\Users\Admin\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.26.28801\include" /Tcdtaidistance/dtw_c.c /Fobuild\temp.win-amd64-3.7\Release\dtaidistance/dtw_c.obj /openmp /Ox /fp:fast /favor:INTEL64 /Og
    cl : Befehlszeile warning D9035 : Die Option "Og" ist veraltet und wird in einer der n„chsten Versionen entfernt.
    dtw_c.c
    C:\Users\Admin\Anaconda3\include\pyconfig.h(59): fatal error C1083: Datei (Include) kann nicht ge”ffnet werden: "io.h": No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.26.28801\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\Users\Admin\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Admin\\AppData\\Local\\Temp\\pip-install-jr44cxi8\\dtaidistance\\setup.py'"'"'; __file__='"'"'C:\\Users\\Admin\\AppData\\Local\\Temp\\pip-install-jr44cxi8\\dtaidistance\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Admin\AppData\Local\Temp\pip-record-t_8xl3_a\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.
在上面MS Visual++截图中MSVC复选框正下方安装其他4个复选框之后,我就可以安装该软件包了

可能会将python设置中指定的
C:\\Program Files(x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.26.28801\\bin\\HostX86\\x64\\cl.exe
更改为MinGW gcc编译器
C:\Program Files(x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin\c++.exe
可能已经解决了这个问题

没有答案

  • MSVC
  • 我已经向他们发送了反馈,但没有得到任何回复。一位Python开发人员保证,他们无论如何都知道这个大小问题,而且也不喜欢它。唯一的机会是改变MSVC开发者自己。MSVC团队不太可能(但并非不可能)在未来的版本中减少该大小

  • Python distutils解决方案
  • Python社区不会提供distutils解决方案,请参阅

    引自Python论坛:

    在Python3.4之前,有一个变通方法,它也可能是一个 现在的方法是:通过添加 “distutils.cfg”到Python安装中的文件夹“\Lib\distutils” 目录如果有一个名为“distutils.cfg”的 最新Python版本的变通方法

    现在看来,distutils将不是一个现实的解决方案

    • 没有人会做这件事。一位之前参与过该项目的Python开发人员:可能有
    。。。可能会提供帮助的其他人。但我不会太乐观

    • 还有一个弃用问题:
    另一方面,既然setuptools已经完全使用distutils,我们将 正在标准库中弃用它(很快)。所以这个请求 必须对每个实施构建的项目制定未来计划 工具


    GCC和MSVC的C++ ABIS(可能的头偶数)是不相容的。你可能会有一些运气使用叮当声,但我不能保证任何事情如果您担心磁盘空间,您可以尝试安装必备组件,然后剥离与Python包无关的部分。甚至可能有一种方法来制作一个便携式MSVC工具链,但不要分发它(我相信它不允许在许可证中)。我已经给出了关于VisualStudio代码调查的反馈意见:我想改进:为Python包提供一个轻的Visual C++来运行,或者提供可以使用CLAN的设置。MinGW或其他编译器而不是Visual C++。不太可能有人会关心它,因为它是VisualC++问题,而不是VisualStudio代码问题。现在每个人都有足够的磁盘空间。我仍然在努力节省磁盘空间,我主要是在一台64GB的上网本上工作。除了磁盘空间,安装MinGW和Visual C++都不好。至少我现在已经试过了,并得到了一点反馈。我已经用这个问题的副本打开了这个问题