python setup.py build_ext --inplace 出错:找不到“cl.exe”等
Python 是解释型语言,其程序运行时逐行解析代码后运行,运行速度比起编译型语言(如 C++)编制的程序慢。为加快 Python 程序运行速度,
可用 C++对 Python 扩展,将耗时的处理用 C++编程。用 Cython 是完成 Python 的 C++扩展的一种方法。Cython 混合了 Python 和 C++代码,它首先将混
合代码转换成 C++代码写入一个 C++源程序,然后再编译连接成 C++库供 Python 使用。Cython 使用外部的 C++编译器和连接器,因为 Python 是用 MSVC
编程的,所以 Cython 多使用 MSVC 的编译器和连接器。Cython 制作 Python 扩展库的命令很简单——python setup.py build_ext --inplace——就是
运行一个 Python 程序 setup.py。为成功执行这个制作命令,需要正确设置 MSVC 的编译、连接环境,否则会出现诸如"找不到 cl.exe"这样的错误。
下面针对不同的错误提供解决方法。
找不到“cl.exe”:为环境变量 Path 添加 2 个路径:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
找不到库文件:在环境变量中新建一个 LIB 变量,并添加 3 个路径:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\lib\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\ucrt\x64
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
找不到头文件:在环境变量中新建一个 INCLUDE 变量,并添加 3 个路径:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\shared
不能运行“RC.exe” :为环境变量 Path 添加 1 个路径:
C:\Program Files (x86)\Windows Kits\10\bin\x64
注:上述针对 Python3.5、MSVC2017 版本。其他版本或 MSVC 安装路径不同,请选择实际路径。