天晴动作工具组文档
首页
C3相关
天晴盒子
脚本文档
开发公约
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于
  • 动画重定向
  • 3ds Max 文件降版本
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • 分类
  • 标签
  • 归档
首页
C3相关
天晴盒子
脚本文档
开发公约
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于
  • 动画重定向
  • 3ds Max 文件降版本
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • 分类
  • 标签
  • 归档
  • CATRig

    • 创建CAT
    • 创建特别注意
    • 动画-图层
    • 动画-IK_Arm_手
    • 动画-IK_Leg_腿
    • 动画-导入-bip
    • 动画-IK固定
    • 动画-缩放拉伸
    • 导出-Motion-Extraction-Node
  • NetSDK(C#)动画曲线插件课程
  • 蒙皮增强
  • 游戏中的动画拉伸效果 - 上
  • FBXMetaData
  • Engine

    • Unity上下半身动画融混合
    • Unity资源单位
    • UE4_AnimDynamics
    • UE4_Dynamic_Simulated_Ponytail
    • UE4_径向模糊
    • UE4CharacterMovement
    • montage
    • UE4基础材质
    • unity_DynamicBone
    • 快速创建包围盒UE4
    • 跳跃动作注意
    • 虚幻EditorUtilityBlueprint_动作资源批量工具
  • MaxPython_Msx

    • Python执行MAXScript
    • 3dsMax 安装 NumPy
    • Python 编译 pyd
      • 不同MAX版本的编译环境差异
      • 虚拟机环境
        • python2.7.15
      • 使用脚本编译 pyd
        • python3.7
      • 测试模块
        • 测试代码
        • 编译py文件
        • 引用测试
    • Sublime Text 发送到 3ds Max
    • Visual Studio Code 发送到 3ds Max
    • 3dsMax_Python中文编码
    • 3dsMax PySide 控件键盘输入问题
    • Max不同版本的Python差异
    • FBX_SDK_动画操作
    • Python3编译Pyd-vc14.16
  • iPhone表情捕捉3dsMax流程
  • 面部蒙皮权重处理
  • Cascadeur动画调研
  • AI视频动捕产品调研
  • RigNet自动绑定角色-AI- 部署测试
  • MotoricaAI-MoGen 动画合成
  • 3dsMax与Spine互导工具
  • EasyMocap视频动捕部署测试
  • FreeMocap无标记视频动捕部署
  • RootMotion和InPlace动画差异
  • 虚幻物理资产导出XML
  • 关闭骨骼移动带转父级的特性
  • 简易Biped绑定框架方案
  • 关于蒙皮权重镜像匹配问题介绍以及解决方案
  • GVHMR视频动捕部署
  • 教程
  • MaxPython_Msx
2021-09-13
目录

Python 编译 pyd

将 .py 编译为C代码 .pyd 以达到代码加速并加密的效果。本文是事后记账,可以有错误遗漏,但大概是八九不离十。

# 不同MAX版本的编译环境差异

Help-3dsMax各版本的python环境 (opens new window)

本人测试的编译环境有以下

VC9.0(py2.7.5)

+   3dsMax 2015 -py2.7.3 
+   3dsMax 2016 -py2.7.3 

VC14.0(py2.7.15)

+   3dsMax 2017 -py2.7.6
+   3dsMax 2018 -py2.7.12
+   3dsMax 2019 -py2.7.15
+   3dsMax 2020 -py2.7.15

因为py向下兼容,所以我直接用 py2.7.15 。

VC14.16

+   3dsMax 2021.3 - py3.7.6
+   3dsMax 2023 - py3.9.7

3dsMax各版本 VC (opens new window) 3dsMax各版本 VC (opens new window)

可以看到 从 2015 - 2021 单编译环境就有3种,但实际上因为,每个版本的 MAX 支持的 PySide 版本不一样,所以...... ,总之后如果你的工具想做多版本兼容,那就头大了。

# 虚拟机环境

建议使用用虚拟机来搭建编译环境。我在虚拟机上安装好 VC14.0 和 py2.7.15 并设置好 msvc9compiler.py 之后就创建快照.

# python2.7.15

1 安装python 和 VC编译器

直接在虚拟机中安装对应版本 python 和 VC编译器

安装 pip cython easycython

  • pip install cython
  • pip install easycython

安装vc9.0 (VCForPython27.msi ) 或是 vc14.0 ( Microsoft Visual C++ Build Tools 2015 ) 两者不冲突

链接:https://pan.baidu.com/s/1GITx2pw0ev9GL4_l7Wb52g 提取码:6y5f

这里提供了 vc 安装安装包,下载之后直接安装即可


2 编辑 msvc9compiler.py - VC9.0

vc9.0 安装路径

C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0

参考文章

windows平台使用Microsoft Visual C++ Compiler for Python 2.7编译python扩展 (opens new window)

修改 python 安装目录下 Lib\distutils\msvc9compiler.py 文件 , 如有必要可能 msvccompiler.py 文件也需要做相应更改,找到 get_build_version 方法直接 return 9.0


3

编辑 msvc9compiler.py - VC14.0

为不同MAX版本 编译 pyd 请自行修改好返回 vc9 还是 vc14.0

# 使用脚本编译 pyd

新建 cython_pyfile.py ,内容如下,注意图中的 you_python_file_name 替换成你自己要编译的 py文件名

将此脚本和你的 .py 文件放在一目录下,

python cython_pyfile.py build_ext --inplace

然后运行以上语句即可编译


# python3.7

和py2.7一样,还是先安装 python3.7,然后安装 cython ,easycython。

实际上安装了 Microsoft Visual C++ Build Tools 2015 之后会自动添加系统环境变量中的,py3.7编译的话,distutils 模块会自动搜索到 vc14.0 的设置,而无需去修改 msvc9compiler.py 。

直接编译即可。

注意

py3.7 编译出的 pyd 文件会有 .cp37-win_amd64.pyd 这样后缀文件命名,不需要修改,引用直接原名。

# 测试模块

# 测试代码

# 编译py文件

# 引用测试

#Python#3dsMax#Cython
3dsMax 安装 NumPy
Sublime Text 发送到 3ds Max

← 3dsMax 安装 NumPy Sublime Text 发送到 3ds Max→

最近更新
01
GVHMR视频动捕部署
04-20
02
关于蒙皮权重镜像匹配问题介绍以及解决方案
03-19
03
简易Biped绑定框架方案
03-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 ND|99u:199505| 鄂ICP备2022012500号 | 鄂公网安备 42022202000122号

共产主义:是对生产资料的共享,不是对生活资料财产的均分

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×