当前位置:网站首页 > 编程语言 > 正文

py文件是什么文件(pyd文件是什么)



因为种种原因,有时候我们需要将py文件编译成pyd文件,但在Maya的环境下,如果是用官方的Python编译出来的pyd肯定不能用,包括PyQt,如果想在Maya环境下运行也是需要特殊编译下;下面就以Maya2019位例来演示下实现方法。

与Maya2019对应的VS是2015,具体对应版本可以查看PluginWizard里面的说明,所以需要安装VS2015,这是后面编译pyd所必需的。

image.png

1.准备工作

版本:MAYA2019

cython版本库:Cython-0.29.24

pip: get-pip.py

python版本:Python27

Visual Studio 版本:Visual Studio 2015

默认pip 是从国外服务器下载各种库的,如果不换国内源,是没法下载成功的。

直接用户目录下创建一个pip 文件夹,然后创建一个pip.ini文件,将下面内容复制进去保存即可。这是全局设置,不只是3ds Max- 环境中的pip ,还是maya 环境的Pip ,都是直接用这个源下载各种扩展库的。

本人设置如下图-使用清华源,下载速度非常快。

image.png

1.安装 pip

首先 Maya 要安装 pip

一些基本的小包可以 Maya 可以用 pip 进行安装,如果带有 C 扩展的则需要自己编译,就像之前 安装Cython 那样。

地址: https://bootstrap.pypa.io/get-pip.py

下载好 get-pip.py

打开 cmd 运行以下命令(mayapy 即你自己 Maya 的 Python 解释器)

image.png

等待执行完毕.

image.png

2.复制文件

拷贝include和lib文件:

需要将Python官方的include文件夹拷贝到Maya的Python文件夹里

C:/Python27/include —> C:Program FilesAutodeskMaya2019Pythoninclude

再将Python27libs文件夹拷贝到Maya2019Pythonlibs文件夹里

C:Python27libs—> C:Program FilesAutodeskMaya2019Pythonlibs

3.安装Cython

下载Cython

cmd再执行如下行命令:

"C:/Program Files/Autodesk/Maya2019/bin/mayapy.exe" 下载的cython路径/setup.py install

就会安装Cython了,如果整个过程没有报错则表示安装完成了.

image.png

如下mayapy.exe命令可以测试下Cython能不能正常使用

image.png

这个Maya2019PythonLibsite-packages目录会看到多了个Cython文件夹

image.png

看来一切都是正常的。

4.开始编译pyd

准备工作做完,就开始我们的编译pyd文件了,编译前需要个setup.py文件,也准备了个foo.py文件,我们就用这个foo.py文件来编译pyd。

foo.py的内容很简单:

def foo():

print('Hello world')

print('py to pyd')

setup.py的内容:

from distutils.core import setup

from Cython.Build import cythonize

setup(ext_modules = cythonize('foo.py'))

cythonize的py文件要和自己的py文件一致。

我的foo.py和setup.py都放在了桌面,所以还是用cd命令切换到桌面然后执行下面这行命令,就能生成pyd了。

"C:/Program Files/Autodesk/Maya2019/bin/mayapy.exe" setup.py build_ext --inplace

image.png

提示注意:error: Unable to find vcvarsall.bat

image.png

如果出现这个情况,说明你电脑缺少vcvarsall.bat ,需要安装VS2015,下图是安装VS2015的选项

image.png

编译完之后会多个.c文件和build文件夹,我们只需要那个pyd就行了。

image.png

然后我们测试下这个pyd能否在Maya里正常使用,

image.png

到此整个编译过程就结束了,自己测试即使用Maya2019编译的pyd可以正常兼容到Maya2019;另外此编译方法未在Linux上测试,Linux编译的是.so文件了,不是这里的.pyd,后面如果在Linux上实现了,再另写文章。

注意:

如果py文件里带有__file__这种东西会报错的

另外大佬另一篇文章有提到 pyd 编译代码相关的坑点,上面 链接也有所提及的,非常受用

https://blog.l0v0.com/posts/1a24f2d2.html

到此这篇py文件是什么文件(pyd文件是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 密码仓库(仓库密码是什么)2025-08-23 22:18:12
  • 线上小程序制作多少钱(小程序制作一个需要多少钱!每年都需要交钱吗)2025-08-23 22:18:12
  • 腾讯会员怎么给别人用二维码登录电脑(腾讯会员怎么给别人用二维码登录电脑)2025-08-23 22:18:12
  • 多动症行为干预是怎么训练(多动症孩子的早期干预训练)2025-08-23 22:18:12
  • 速排小蚂蚁客服(小蚂蚁官方客服)2025-08-23 22:18:12
  • 104报文解析实例(104报文分析)2025-08-23 22:18:12
  • mho是什么单位(mmho是什么单位)2025-08-23 22:18:12
  • 单播地址和广播地址范围(单播地址和广播地址范围一样吗)2025-08-23 22:18:12
  • 富文本框编辑器(富文本编辑器插件)2025-08-23 22:18:12
  • 蓝牙地址怎么查找定位(蓝牙怎么查找位置)2025-08-23 22:18:12
  • 全屏图片