hou模块的本质:如何将py代码转成pyd?

以pyd作为扩展名的文件是通过Cython解释器将C代码转成了python的动态扩展库,在Windows底下和dll的性质是相同的,只不过可以通过python import来使用,比如在Houdini中常用的hou模块其实全部是在调用_hou.pyd的内容,演示

可以通过Python Shell导入_hou模块

本篇文章来实现将py代码转成一个pyd文件来使用(生成pyd文件的其中一种姿势)

比如创建一个文件夹,文件夹中创建两个文件fib.pyx和setup.py,内容分别如下

fib.pyx

setup.py

之后在此文件夹中Shift+右键打开命令行窗口,输入编译指令

如果一切顺利,可以看到生成了fib.cp36-win32.pyd和fib.c文件,其中fib.cp36-win32.pyd文件就是我们需要的(此处需要配置相应的编译环境,等会再说),先看看pyd文件能否正确执行?

可以看到它是没有问题的,算是成功将py代码转成了pyd文件来使用。

下面来看看编译环境,笔者的环境是安装了Python36、VS 2015以及Cython对应版本,Cython可以去官网http://cython.org/下载。

这里说几个知识点(实际是无限折腾的坑)

一、如果电脑上即装了Python2又装了Python3可以在命令行通过下面指令来切换使用,如果后面跟py文件则以相应的版本环境来执行操作

二、pip的安装根据不同的Python版本来安装的,比如在https://pypi.python.org/pypi/pip下载pip的tar.gz安装包

对于不同的Python版本的扩展包需要使用不同的pip来安装,比如给不同的Python版本安装对应的Cython就要使用

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180112G00VXE00?refer=cp_1026

相关快讯

扫码关注云+社区