为什么在使用不同的python版本与Cython生成软件包时它们具有不同的MSVC编译器?

问题描述

在我的项目中,我尝试使用Cython构建车轮包装。

我的命令:

python setup.py bdist_wheel

使用python3.6可以成功,但是使用python3.7python3.8可以失败。

它们具有相同的os环境变量,并且安装了相同的程序包依赖项。

通过比较两种输出,我发现它们使用了不同的msvc编译器。

python3.6可与Cython的完整编译命令msvc2019一起使用:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.25.28610\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -IC:\python36_64\include -IC:\python36_64\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.25.28610\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.25.28610\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tcbuild\myproject/myservice_obj.c /Fobuild\temp.win-amd64-3.6\Release\build\myproject/myservice_obj.obj

python3.7python3.8与msvc2014(Cython的完整编译命令)一起使用:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\python37_64\include -IC:\python37_64\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFxsdk\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" /Tcbuild\myproject/myservice_obj.c /Fobuild\temp.win-amd64-3.7\Release\build\myproject/myservice_obj.obj

问题:

为什么它们的构建过程设置不同?

如何使用msvc2019与python3.7一起构建软件包?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)