如何为Window 10 Maya 2017 python编译python c扩展?

时间:2018-11-19 20:39:01

标签: python c windows maya

经过一番痛苦之后,让我的python setup.py与setuptools和专用的Microsoft VC(适用于Python 2.7的Microsoft Visual C ++编译器软件包)一起工作,并成功在Windows 10上编译了扩展程序,事实证明Maya 2017包含了python可执行文件(mayapy)使用其他版本进行编译,请参见下文。

c:> python 在Win32上使用Python 2.7.1(r271:86832,2010年11月27日,17:19:03)[MSC v.1500 64位(AMD64)]

c:>“ Program Files \ Autodesk \ Maya2017 \ bin \ mayapy.exe” 在Win32上的Python 2.7.11(默认值,2015年12月21日,22:48:54)[MSC v.1700 64位(AMD64)]

我也安装了Visual Studio 12,这似乎是正确的编译器版本。

但是我如何告诉setuptools使用该版本?

谢谢

1 个答案:

答案 0 :(得分:0)

一种快速而肮脏的方法是使用VS2012 x64本机工具的命令提示符在命令行上编译所需的DLL。与Maya 2017中的mayapy.exe匹配的版本。

使用cl编译c代码。您可能需要使用/ I指向Python 2.7包含文件。

  

cl / DL / I .. \ include / I C:\ Python27 \ include

由于链接器可能无法找到“ python27.lib”,因此您也可以使用/ LIBPATH手动链接以指向Python 2.7 libs目录。

  

链接/ DLL / LIBPATH:C:\ Python27 \ libs * .obj

这将为您提供一个DLL和与mayapy.exe编译器匹配的中间文件。

脏部分。 使用python setup.py build构建扩展。这将为您提供一个将在常规python解释器中导入的模块。删除“ build”文件夹中的“ lib *”目录。将“ .obj”,“。exp”和dll复制到build文件夹中的temp文件夹中,例如“ temp.win-amd64-2.7 \ Release \\ src”。

然后再次运行python setup.py构建。 肮脏的,很快,一旦您知道该怎么做...