【问题标题】:How can I compile python c extension for the Window 10 Maya 2017 python?如何为 Window 10 Maya 2017 python 编译 python c 扩展?
【发布时间】:2019-04-22 06:21:52
【问题描述】:

在让我的 python setup.py 与 setuptools 和专用的 microsoft VC(用于 Python 2.7 的 Microsoft Visual C++ 编译器包)一起工作并在 Windows 10 上成功编译我的扩展程序之后,发现 Maya 2017 包含 python可执行文件 (mayapy) 使用不同的版本编译,见下文。

c:>蟒蛇 Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32

c:>“程序文件\Autodesk\Maya2017\bin\mayapy.exe” Python 2.7.11(默认,2015 年 12 月 21 日,22:48:54)[MSC v.1700 64 bit (AMD64)] on win32

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

但是我怎样才能告诉 setuptools 使用那个版本呢?

谢谢

【问题讨论】:

    标签: python c windows maya


    【解决方案1】:

    快速而肮脏的方法是使用 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 目录。

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

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

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

    然后再次运行 python setup.py build。 肮脏的,是的,快,一旦你知道该怎么做......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2011-06-08
      相关资源
      最近更新 更多