环境:VS2015
查找了很多网上的文章,但大多数都是以VS为原型解决问题。因为我自己没有太多使用VS的经验,所以也并不知道应该如何使用VS将python项目编译成sdk。
最初的代码是这样的:
from distutils.core import setup
from Cython.Build import cythonize
setup(
name='pt_sdk',
ext_modules=cythonize(
["Qt_Ext.py"]
)
)
但是编译默认采用了x86进行编译,导致编译较大的文件时会爆出如题示异常。翻看了网上许多资料后,发现可以强行将编译器指定为x64:
from distutils import _msvccompiler
_msvccompiler.PLAT_TO_VCVARS['win-amd64'] = 'amd64'
只需要在最开始的时候加入这段代码即可。
另外还可能会爆出异常:
LINK : fatal error LNK1158: 无法运行“rc.exe”
error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64\\link.exe' failed with exit status 1158
这里比较简单,只需要把C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x64\rc.exe及rcdll.dll复制到vs安装目录下的\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64路径即可。
希望对大家有所帮助。