在让我的python setup.py与setuptools和专用的microsoft VC(适用于python 2.7的microsoft Visual C++编译器包(一起工作并成功地在windows 10上编译了我的扩展之后,发现包含Maya 2017的python可执行文件(mayapy(是用不同的版本编译的,请参阅下文。
c:>pythonPython 2.7.1(r271:868322010年11月27日17:19:03([MSC v.1500 64位(AMD64(]在win32 上
c:>"Program Files\Autodesk\Maya2017\bin\mayapy.exe"Python 2.7.11(默认,2015年12月21日22:48:54([MSC v.1700 64位(AMD64(]在win32 上
我也安装了Visual Studio 12,这似乎是正确的编译器版本。
但是我如何告诉setuptools使用那个版本呢?
感谢
快速而肮脏的方法是使用VS2012 x64 Native Tools的命令提示符在命令行上编译所需的DLL。与Maya 2017中的mayapy.exe匹配的版本。
要编译c代码,请使用cl。您可能需要使用/I指向Python 2.7包含文件。
cl/DL/I。。\include/I C:\Python27\include
因为链接器可能无法找到"python27.lib",所以您也可以使用/LIBPATH手动链接以指向Python 2.7 libs目录。
link/DLL/LIBPATH:C:\Python27\libs*.obj
这将为您提供一个DLL和与mayapy.exe编译器匹配的中间文件。
脏的部分。使用python setup.py Build构建扩展。这将为您提供一个模块,该模块将在常规python解释器中导入。删除"build"文件夹中的"lib*"目录。将".obj"、".exp"和dll复制到构建文件夹中的临时文件夹,类似于"temp.win-ad64-2.7\Release \\src"。
然后再次运行python setup.py build。脏是的,快,一旦你知道该怎么做…