Maya mayapy.exe 安装 Cython,编译 pyd

前言

在 Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑 中最后提到,使用  VCForPython27 编译的 pyd,不能在 maya 中使用,这跟编译 mayapy.exe 的 msc 有很大关系,运行 mayapy.exe 就能获取 python 的版本 和 msc 的版本,至于 msc 和 VS 的版本对应,请参阅:MSC VS 版本对应

软件安装

maya2014

vs 2010(只要安装就行,mayapy.exe 会自动找到 msc)

编译和安装 Cython 到 maya2014 的 python lib 中

这里我们需要 Cython 源码,用 maya2014 的 python.exe 来运行 Cython 的 setup.py,这样会自动找到 vs2010 的 msc 来编译 Cython,这样才会和 maya 的 python.exe 的 msc 版本一致。

编译预准备:

在编译前,我们需要在 maya 的安装路径中配置一下编译需要的 python 头文件和 python.lib,根据参考:maya环境下,py -> pyd,里面说的过程是对的,但是细节却有错误,根据编译中的错误提示,我是这样做的:

以下的目的都是以maya的安装目录为前缀的:

1.在 /Python 文件夹中新建一个include 和 libs 文件夹(这两个文件夹是必须的,我是根据编译过程中的报错找到的这两个文件夹)

2.拷贝 /lib/python27.lib 到 Python/libs

3.拷贝 /include/python2.7 中所有的文件到 Python/include

编译

1.把下载的 cython 压缩包解压到任何路径(不建议中文路径或者一些奇葩路径)

2.管理员运行 cmd (win 系统),因为最后会拷贝编译好的 package 到 maya 的安装目录下,可能需要一些权限,尤其是如果 maya 安装在 C 盘。

3.cd 到 解压后的 cython 目录下运行 "[ maya安装目录 ]\bin\mayapy.exe" setup.py install

4.没有报错就表示成功,运行 mayapy.exe >>> import Cython 可以检测是否安装成功

编译 pyd

同样,我们需要用 mayapy.exe 来运行我们的 setup.py:mayapy.exe setup.py build_ext --inplace

编译后的 pyd 兼容性

用 maya2014 的 cython 编译出来的 pyd 能兼容到 maya2018,至于更高版本,可能到了使用 python3 的maya就不兼容了。

max2018 python 也兼容,可能也跟 maya 一样,python3 的 max python 就不再兼容

官方版的 python2 也是兼容的

注意点

__init__.py 不能编译成 pyd

关于 .py 中的 __file__ 属性,虽然能编译通过,但是编译成 pyd 后,会报 "__file__ is not defined" 的错误,所以这个要特殊处理一下,__file__属性是import 一个py 模块后产生的,所以我们可以把相关的变量定义到 __init__.py 中

pyd 和 pyc 混合使用

在测试中,由于我的一个模块中有 __file__ 属性,所以我把 pyd 重命名,拷贝一个 pyc 到相应目录下,发现一些 import 该模块的模块中的属性不完整,所以建议:pyd 不要引用 相关联的而不被编译成pyd 的 pyc,py 和 pyc 可以引用 pyd

转pyd的py中尽量不要用try,比如导入一个pyd,这个pyd中导入一个不存在的模块,第一次会报出importError,但是你再导入pyd的时候,那个pyd会变成一个默认空的built in模块,并不会报错,这个有点坑

maya破解版安装python_Maya mayapy.exe 安装 Cython,编译 pyd相关推荐

  1. Maya mayapy.exe 安装 Cython,编译 pyd

    Maya mayapy.exe 安装 Cython,编译 pyd 前言 在 Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑 中最后提到,使用  VCForPy ...

  2. 死亡之雨新的僵尸病毒中文破解版 v1.0绿色免安装版

    点击下载来源:死亡之雨新的僵尸病毒中文破解版 v1.0绿色免安装版 死亡之雨新的僵尸病毒是人气作品<死亡之雨>的最新续作,在该作中沿用了前作的横版风格,增加了僵尸怪兽的种类,拥有了全新的关 ...

  3. Genymotion破解版AMD显卡,虚拟机安装

    Genymotion破解版AMD显卡,虚拟机安装 听说genymotion是最快的模拟器,还不支持AMD显卡(心塞本人的是AMD的蓝瘦),然后找了很多教程,最终完成了,有一个偶然的发现在VMware里 ...

  4. Autocad2013中文破解版(64位)安装图文教程

    Autocad2013[cad2013]官方简体中文破解版(64位)安装图文教程.破解注册方法 工具/原料 Autocad2013中文破解版(64位) 电脑 方法/步骤 1 解压CAD2013 64位 ...

  5. moldflow2019破解版|moldflow2019中文破解版下载(附激活工具+安装教程)

    点击下载:moldflow2019中文破解版 moldflow2019是Autodesk公司全新推出的2019新版本,专业用户注塑成型的仿真工具,帮助制造商预测.优化和验证塑料零件.注射模具和成型工艺 ...

  6. 骰子地下城简体中文破解版 v1.0绿色免安装版

    点击下载来源:骰子地下城简体中文破解版 v1.0绿色免安装版 骰子地下城是由Terry Cavanagh制作发行的一款比较新颖的点击回合制的地牢探险策略战棋游戏,故事发生在一个充满惊喜.翻转,秘密的神 ...

  7. maya破解版安装python_Maya Python开发

    Maya基本操作 建立Object,Maya漫游 Alt+ Maya最下面有Mel最右边,有小按钮 Maya 脚本编辑器,Maya右键操作滑动 切换到点模式:右键切换定点模式 按F切换物体的中心 对象 ...

  8. catia v5r20破解版 32位64位 安装说明方法

    catia v5r20是法国达索公司catia推出的一款CAD/CAE/CAM一体化软件,该软件拥有先进的混合建模技术和统一的数据平台,能够提供了完备的设计能力,从产品的概念设计到最终产品的形成,以其 ...

  9. 3.5.1 安装及配置exe安装版的mysql

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  10. proxifier for mac 破解版 v2.19

    proxifier mac是一款Mac上的socks5客户端,就是一个可以帮助用户让让那些不支持代理服务器工作的网络程序能够通过HTTPS或SOCKS代理或代理链进行工作.我们都知道现在有很多网络应用 ...

最新文章

  1. Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK
  2. 【实用】ALV 清单右击隐藏列失效的处理
  3. 【深度学习】神经网络基础:反向传播算法
  4. Visual Studio 2017发布会:黄金时代的家族聚会
  5. android 界面绘制完毕,几种获取android 界面性能数据的快捷方法
  6. 项目微管理17 - 双赢
  7. HDU-1087 Super Jumping! Jumping! Jumping!
  8. C# 虹软离线SDK引擎 人脸识别
  9. New Concept English Two 5
  10. IOS开发之宏的深度学习
  11. shell脚本大全-个人收藏
  12. 微信小程序【WXSS 文件编译错误】unexpected “?“at pos 1的解决办法。
  13. 010-java 表单方式或者base64方式上传图片,后端使用nutz的post转发图片到另一个请求...
  14. python自动化模拟浏览器
  15. 华夏ERP前端的问题解决
  16. python Beautiful Soup常用过滤方法
  17. 【全网独家,收藏吧】10年全部《信息资源管理》真题整理,第2章 信息化规划与组织
  18. 微信小程序盲盒系统源码 附带教程
  19. 工控网关linux用什么芯片,重庆工控嵌入式主板原理,工业网关怎么挑
  20. 理解和应用持续集成-Tekton

热门文章

  1. 琼斯是计算体心立方弹性模量_本科阶段固体物理期末重点计算题.doc
  2. 一文讲清微服务架构、分布式架构、微服务、SOA
  3. 算法课讨论 深究哈密顿图
  4. Virtualbox Ubuntu增强功能
  5. 第10章第4节:使用iSlide的统一色彩命令统一修改某个颜色 [PowerPoint精美幻灯片实战教程]
  6. 10 个错过即损失的智能合约开发者工具
  7. sublimetext text3比较两个文档的不同
  8. http://www.qiantu.org/index.php?p=403#comments
  9. 如何在CAD图纸中添加文字
  10. 计算机接口学平时作业,西电《计算机接口与通信技术》平时作业[教学作业]