使用mayapy编译出maya可用的pyd文件

使用mayapy编译出maya可用的pyd文件

1.给Maya安装pip,yaml

①可自行浏览器直接搜索get-pip.py,即可找到该文件。为方便起见,献上我自己下载的文件链接:https://pan.baidu.com/s/18rVrOB7EYDyXfxG240ifNg 提取码:wwl2 ,下载完成后,放到任意非中文路径下。
②管理员运行cmd,找到mayapy的路径:C:\Program Files\Autodesk\Maya2018\bin\mayapy.exe(此处我以Maya2018为例),为方便可将该路径下的bin路径添加至环境变量中:
在这里插入图片描述
然后在cmd中输入

mayapy H:\get-pip.py

③安装完pip后,可直接利用pip安装yaml

mayapy -m pip install pyyaml

2.确认Maya版本及其对应的VS

①win+R输入mayapy运行可看到:
在这里插入图片描述
我的maya版本是2018,对应的VS版本是MS VC++ 14.0 _MSC_VER = 1900 (Visual Studio 2015)
MSC VS 版本对应:https://www.cnblogs.com/ibingshan/p/10343037.html
②下载VS 2015,此软件可在微软网站或者MSDN网站下载:https://msdn.itellyou.cn/(此处推荐MSDN,省事)
③安装VS 2015,安装之前一定要先确认本机无更高版本,比如VS 2017,因为在高版本安装的情况下,之后运行的时候会有问题,并且记得安装VC++相关依赖:
在这里插入图片描述
④第三步确认之后,即可将下载下来的cn_visual_studio_community_2015_x86_dvd_6847368.iso文件装载到电脑上,或直接用压缩软件将其解压出来,直接运行文件夹内的可执行文件,然后就是漫长的等待。

附其他办法:

若不想安装VS 2015,可尝试一下方式(我是直接安装的VS2015,下边这个办法还未尝试):
①网上有说安装VCForPython27.msi,这是微软官方发布的针对Python27用的VC简易版,这个东西装上之后,可以不用装VS2015应该就可以编译了,但是编译出来的pyd貌似不能被maya加载,但是可以在默认的python idle环境下加载。链接:链接:https://pan.baidu.com/s/1iiXZvEHgGLkHqd9ztNEMAg 提取码:x1iy
下载安装VCForPython27.msi之后默认路径为C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0,可能需要修改C:\Program Files\Autodesk\Maya2018\bin\python27\distutils\msvc9compiler.py里两个地方:

def get_build_version():
"""Return the version of MSVC that was used to build Python.

For Python 2.3 and up, the version number is included in
sys.version. For earlier versions, assume the compiler is MSVC 6.
"""
return 9.0
....(代码省略)
def find_vcvarsall(version):
"""Find the vcvarsall.bat file

At first it tries to find the productdir of VS 2008 in the registry. If
that fails it falls back to the VS90COMNTOOLS env var.
"""
return r'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat'
....(代码省略)

②安装Microsoft Visual C++ Build Tools 2015
③将mt.exe 程序的路径添加到环境变量中:C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\

3.在编译前,我们需要在 maya 的安装路径中配置一下编译需要的 python 头文件和 python.lib

以下的目的都是以maya的安装目录为前缀的:
①.在 /Python 文件夹中新建一个 include 和 libs 文件夹
②.拷贝 /lib/python27.lib 到 Python/libs
③.拷贝 /include/python2.7 中所有的文件到 Python/include

4.编译Cython和numpy(numpy非必需)

Cython和numpy下载链接:链接:https://pan.baidu.com/s/1fOlITiwY0JoTHsE3Ez20vA 提取码:uijp
①管理员模式打开vs2015 cmd,cd到numpy所在的盘符,先编译numpy,执行:

mayapy setup.py build_ext -I "C:\Program Files\Autodesk\Maya2018\include\python2.7" -L "C:\Program Files\Autodesk\Maya2018\lib"

②编译完成之后执行 install 自动将代码安装到 maya 的 site-packages 里面,执行:

mayapy setup.py install

③安装Cython:cd到Cython所在的盘符,执行:

mayapy setup.py install

5.创建工作目录并生成pyd

注意:程序所在的目录路径不能包含中文文字
简单写了一个测试文件(命名为test.py):

#coding:utf-8
def hello():
    print("Hello world")
    input("<press ENTER to quit>")

在该目录下,再新建一个py文件(命名为setup.py):

from distutils.core import setup
from Cython.Build import cythonize
 
setup(
  name = 'Hello world app',
  ext_modules = cythonize("test.py"),
)

接着,再打开cmd,跳到该目录并执行如下命令:

mayapy setup.py build_ext --inplace

注:参考链接(感谢各位大佬的经验)

Maya 安装pip和numpy:https://zhuanlan.zhihu.com/p/191102243
VS2015下载地址和安装教程(图解):http://c.biancheng.net/view/453.html
Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑:https://www.cnblogs.com/ibingshan/p/10334471.html
Maya mayapy.exe 安装 Cython,编译 pyd:https://www.cnblogs.com/ibingshan/p/10346354.html
MSC VS 版本对应:https://www.cnblogs.com/ibingshan/p/10343037.html
Maya 编译 c 相关 Python 库 & pyd 编译:https://blog.l0v0.com/posts/1a24f2d2.html
用maya编译Pyd:https://zhuanlan.zhihu.com/p/354466211
Maya:第六周 作业:https://www.jianshu.com/p/62ad58e22c35
Python生成pyd文件:http://yshblog.com/blog/117
简书安装numpy模块:https://www.jianshu.com/p/6a5065af3d1d

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值