python程序编译错误,Python安装编译错误

I'm hoping someone can help me since I've been stuck on this for a while, and I'm not very familiar with compiling packages. Trying to install the following package: https://github.com/jhkorhonen/MOODS/wiki/Installation

Running Python 3.5 (Anaconda), Windows 10 64bit, Microsoft Visual Studio 2017 Community Edition. Here is what I did so far.

Error 1:cded to extracted package location, and ran python setup.py install --user but got the error that says:

running install

running build

running build_py

running build_ext

building 'MOODS._tools' extension

cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Icore/ -IC:\Users\Wolf\Anaconda3\include -IC:\Users\Wolf\Anaconda3\include /EHsc /Tpcore/tools_wrap.cxx /Fobuild\temp.win-amd64-3.5\Release\core/tools_wrap.obj -march=native -O3 -fPIC --std=c++11

error: command 'cl.exe' failed: No such file or directory

Solution 1: Turns out C:\Program Files (x86)\Microsoft Visual Studio 14.0 does not have the \VC folder it is looking for, but I did find it at C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\bin, so I added that to PATH.

Then another error:

Error 2: C:\Program Files (x86)\Microsoft Visual

Studio\Shared\14.0\VC\bin\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD

-Icore/ -IC:\Users\Wolf\Anaconda3\include -IC:\Users\Wolf\Anaconda3\include /EHsc /Tpcore/tools_wrap.cxx /Fobuild\temp.win-amd64-3.5\Release\core/tools_wrap.obj -march=native

-O3 -fPIC --std=c++11 cl : Command line warning D9002 : ignoring unknown option '-march=native' cl : Command line warning D9002 :

ignoring unknown option '-O3' cl : Command line warning D9002 :

ignoring unknown option '-fPIC' cl : Command line warning D9002 :

ignoring unknown option '--std=c++11' tools_wrap.cxx

c:\users\wolf\anaconda3\include\pyconfig.h(68): fatal error C1083:

Cannot open include file: 'io.h': No such file or directory error:

command 'C:\\Program Files (x86)\\Microsoft Visual

Studio\\Shared\\14.0\\VC\\bin\\cl.exe' failed with exit status 2

Solution 2: So I added an environmental variable INCLUDE and set it

to C:\Program Files (x86)\Windows

Kits\10\Include\10.0.14393.0\ucrt, which has io.h.

However, yet another error:

C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\bin\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Icore/ -IC:\Users\Wolf\Anaconda3\include -IC:\Users\Wolf\Anaconda3\include "-IC:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt" /EHsc /Tpcore/tools_wrap.cxx /Fobuild\temp.win-amd64-3.5\Release\core/tools_wrap.obj -march=native -O3 -fPIC --std=c++11

cl : Command line warning D9002 : ignoring unknown option '-march=native'

cl : Command line warning D9002 : ignoring unknown option '-O3'

cl : Command line warning D9002 : ignoring unknown option '-fPIC'

cl : Command line warning D9002 : ignoring unknown option '--std=c++11'

tools_wrap.cxx

C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt\corecrt.h(10): fatal error C1083: Cannot open include file: 'vcruntime.h': No such file or directory

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\14.0\\VC\\bin\\cl.exe' failed with exit status 2

I'm not sure how to solve this. It seems like adding things to PATH isn't helping a whole lot. Maybe it has to do with the introduction of Universal CRT? Should I just uninstall Visual Studio 2017 and use an older version?

解决方案

I had very similiar issue running Python 3.5 (Anaconda), Windows 10 64bit, Microsoft Visual Studio 2017 Professional Edition.

Did you try to enable a 64-Bit Visual C++ Toolset on the Command Line?

To do this, run vcvars64.bat on your command line first.

In my case the localization is:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build

This was sufficient for me and solved my problem.

In addition, I see some users have to install "Windows Universal CRT SDK" (I have it already). Check if you also have it:

Run Visual Studio Installer.

Select Modify button.

Go to "Individual Components" tab.

Scroll down to "Compilers, build tools and runtimes".

Tick "Windows Universal CRT SDK".

Install.

PS: for convenience I recommend using powershell. A script for setting vcvars64.bat example from here:

pushd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\"

cmd /c "vcvars64.bat&set" |

foreach {

if ($_ -match "=") {

$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"

}

}

popd

Write-Host "`nVisual Studio 2017 Command Prompt variables set." -ForegroundColor Yellow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值