刚开始学习用Cython。 我试图编译一个简单的.pyx文件。
print("hello")
这里是我的setup.py:
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("hello.pyx")
)
然后我运行命令。
python setup.py build_ext --inplace
如下错误。 我已经在Google上搜寻它的斗争并没有什么有益的来找我。
running build_ext
building 'hello' extension
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jackie\AppData\Local\Continuum\Anaconda3\include -IC:\Users\Jackie\AppData\Local\Continuum\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tchello.c /Fobuild\temp.win32-3.5\Release\hello.obj
hello.c
c:\users\jackie\appdata\local\continuum\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 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
有人可以帮助我解决这个错误,请?
我有Anaconda3 4.1.1的Python 3.5和Visual Studio Express的2015年安装的。
这是很无奈...
如果任何人发现这个线程,并正在寻找一种更快的解决方案比重新安装VS和/或蟒蛇-我能够通过定义环境变量,让过去同样的错误包含分别指向io.h的位置-让VS编译器定位头。
在我的设置,使用VS2015,变化到使用通用CRT装置io.h的位置为C:\Program Files (x86)\Windows Kits\10\Include\<version>\ucrt
。 对于不同的版本/环境io.h的位置可以不同。
微软并没有做任何努力去取得明显控制台开发步骤了。 Visual Studio中一直被打包了一些批处理文件来建立环境变量。 当C ++ CLI开发选项VS2015 / 2017年被选中,也有添加到开始菜单中执行这些批处理文件的一个或多个快捷键。
对于2017年VS各种批处理文件所有的呼叫:
C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\vcvarsall.bat
具体参数。
而不是设置一个系统或用户环境变量,它会更好地调用特定的批处理文件,以满足您的构建需要。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat
要么
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat
有一两件事要记住使用Python / Ruby的/ etc下,脚本会经常需要提升执行壳管理员角色,以安装软件包。 您如果在非管理员外壳程序执行批处理文件,包安装需要提升它会催生它不会有环境变量子shell。 因此,你应该叫包管理器或脚本之前运行在管理员外壳的批处理文件。
我偶然发现了同样的问题 - 非常类似的配置到你的(唯一的区别:2015年VS专业版)。 在刚刚不得不从其他人下载车轮几周后(如http://www.lfd.uci.edu/~gohlke/pythonlibs/ )我终于找到了这对我的作品的解决方案。
有2个问题。 问题1 - 你需要使用“开发人员命令提示符” - 有时是在开始菜单这样的程序,那么你只需要使用它。
(顺便说一句,为他人:Python的3.5需要VS2015,没有任何其他版本的社区版是OK)
如果没有,你可以使用下面的代码片段(命令行):
"%VS140COMNTOOLS%vsvars32.bat"
甚至:
where cl >nul 2>nul || "%VS140COMNTOOLS%vsvars32.bat"
(我有它在一个批处理文件来运行我的生成环境)
(如果你不具备%VS140COMNTOOLS%
变量,那么也许你刚刚安装的VS,你需要如重新启动,使新的环境变量变得可见)。
现在,您将得到错误:
c:\program files\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 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
(在你的答案编辑)
所以,现在运行:
set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
OK,现在你会得到错误:
LINK : fatal error LNK1104: cannot open file 'ucrt.lib'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1104
现在怎么办? 您需要添加库迪尔斯:
set LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64
没有错误这一次:
> dir
05/16/2017 11:33 AM 69,240 hello.c
05/16/2017 11:47 AM 15,872 hello.cp35-win_amd64.pyd
05/16/2017 11:32 AM 17 hello.pyx
(...)
TL; DR -整个事情:
where cl >nul 2>nul || "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64
set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
set LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64
python setup.py build_ext --inplace
我有同样的问题,通过安装Windows 10 SDK解决它。
我在尝试安装时同样的错误pyshark
和我通过运行解决了这个问题pip install pyshark
在Developer Command Prompty for VS 2017
,并确保我已经安装了VC ++工具。
添加Windows 10 SDK环境中的路径。
C:\ Program Files文件(x86)的\的Windows套件\ 10 \包含\\ ucrt
- 应用更改。
- 打开一个新的命令提示符具有管理员权限。
应该被删除的错误。
如果有人遇到了这个错误,而试图在安装Git Bash
(我想这也将为任何工作Bash
上运行外壳Windows
使用Visual Studio
编译器),那么你就可以做到以下几点:
INCLUDE="C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/ucrt/;C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/shared/" \
> LIB="C:/Program Files (x86)/Windows Kits/10/Lib/10.0.17763.0/ucrt/x64;C:/Program Files (x86)/Windows Kits/10/Lib/10.0.17763.0/um/x64" \
> PATH=$PATH:/c/Program\ Files\ \(x86\)/Windows\ Kits/10/bin/10.0.17763.0/x64 \
> python -m pip install <package>
对于不同版本Windows
和Visual Studio
这些路径可能略有不同。 让他们最好的办法是,当发生错误时,搜索与文件
find /c/Program\ Files\ \(x86\)/ -name <name_of_error_causing_file>