Tribon二次开发-py文件打包dll文件

        结论:现将.py/pyx文件转.c文件,再将.pyd文件修改其后缀为.dll文件

工具/包

        VMware workstation Pro 12或VMware workstation player 12

        ubuntu-16.04

        Cython-0.15.1.tar.gz

        Microsoft Visual C++ 6.0

        Python2.3

.py/pyx转.c文件

        在ubuntu安装Python2.3或Python2.x(Cython-0.15.1仅支持Python2.x)和Cython-0.15.1

        a.安装Python2.3……………………….略

        b.安装Cython-0.15.1  

        ubuntu终端中利用sudo  su切换管理员权限;

                Cython-0.15.1 解压后的目录下(tar zxf ………) 通过命令python setup.py install来安装Cython-0.15.1

        c. py/pyx编译成.c文件   如sum.pyx

#sum.pyx

def sum(int a,int b):

    return a + b

        f.执行命令,在同一目录下生产.c文件

        cython sum.pyx

至此完成pyx/py文件转换为c的步骤,由于python setup.py build_ext –inplace会将.c文件转为.so文件,而我们需要的是dll文件。因此需要到windows环境下完成后续工作。

        Windows中,做如下三步:

  1. 安装Python2.3

        设置环境变量 ,如添加C:\Python和C:\Python\Lib

2.安装Cython-0.15.1  

        解压Cython-0.15.1.tar.gz

        与bin同目录下   python setup.py install

        注册Cython-0.15.1 \bin\的环境变量

        运行Cython-0.15.1 \bin\ cython.bat文件

        通过执行cython来查看是否安装成功

       3.编写setup.py文件

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
    cmdclass = {'build_ext': build_ext},
    ext_modules = [Extension("sum", ["sum.pyx"])]
)

d.执行python setup.py build_ext –inplace命令,生成pyd文件,将.pyd改为dll,pyd文件和dll文件都可以在Python源码中直接import。

为什么要在ubuntu中生成.c文件:

在windows中执行ubuntu类似命令会有如下问题

  1. Python2.3和Cython-0.15.1对应的编译器版本是Microsoft Visual C++ 6.0,这款编译器比较古老,需要自行安装Microsoft Visual C++ 6.0的编译器,安装Microsoft Visual Studio 6.0即可
  2. 在wimdows下执行cython xx.pyx 会报如下错误

[Errno 2] No such file or directory : u’C:\\demo\\sum.pyx,路径中是‘\\’不是’\’

        3. ubuntu只能将.c文件转为.so文件,windows能将.c文件转为.pyd文件,pyd文件可以修改后缀为.dll

你可能感兴趣的:(python)