Windows下Python的Setuptools模块采用的编译器

在window下通过命令行进行python模块的build需要注意一下默认的编译器的问题:

1. Microsoft Visual C++ compiler

Python版本与编译器版本的对应说明:
在这里插入图片描述
安装了Visual Studio环境,就会自带对应的编译器,如果仅仅只需要用到编译器可以选择仅安装特定版本的编译工具,如:
Microsoft Build Tools for Visual Studio 2019
在这里插入图片描述在采用高版本的编译器时,除了注意python的版本要对应,其中Setuptools库的版本也有要求。对于2019Build Tools 官方给的要求是:

  1. Install Microsoft Build Tools for Visual Studio 2019.
  2. In Build tools, install C++ build tools and ensure the latest versions of MSVCv142 - VS 2019 C++ x64/x86 build tools and Windows 10 SDK are checked.
  3. The setuptools Python package version must be at least 34.4.0.

可以升级一下setuptools :

pip install --upgrade setuptools

安装完成后,运行py脚本时会自动选择最新的编译器,并且默认为Microsoft Build Tools。
可以首先在命令行创建一个编译环境,运行一个现成的vcvars64.bat文件即可,一般与cl.exe在同一个目录下面。在命令行执行:

call "E:\Visual Studio\VS2019_Build_Tools\VS2019_BT\VC\Auxiliary\Build\vcvars64.bat"

之后运行

python build.py  参数1  参数2

可以看到已经调用了对应的编译器,后面是一些配置参数:
在这里插入图片描述另外,如果编译时需要其他功能,还要考虑电脑该库的版本如cuda,
2019的Microsoft Build Tools与cuda9.2是匹配的,可能导致部分功能无法编译。
在这里插入图片描述

2.GCC - MinGW-w64

处理微软提供的编译器,也可以采用开源的GCC等工具作为python的包编译工具,官方给出的指导意见:
MinGW-w64 is an alternative C/C++ compiler that works with all Python versions up to 3.4.

  1. Install Win-builds into C:\MinGW_w64.
  2. Open Win-builds, switch to install at least binutils, gcc, gcc-g++,
    getext, mingw-w64, win-iconv, winpthreads, zlib, and click Process.
  3. Add C:\MinGW_w64\bin to the PATH environment variable. Create a distutils.cfg file with the following contents in the folder\Lib\distutils in Python install directory :
   [build]
   compiler=mingw32
    [build_ext]
    compiler=mingw32

注意:这种方法支持python的版本仅仅到3.4,需要自己创建distutils.cfg*** 文件,因为python默认是Microsoft Build Tools*

更多详细的信息可以参考相关说明:

https://wiki.python.org/moin/WindowsCompilers#Microsoft_Visual_C.2B-.2B-_14.2_standalone:Build_Tools_for_Visual_Studio_2019.28x86.2C_x64.2C_ARM.2C_ARM64.29

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值