结论:现将.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中,做如下三步:
设置环境变量 ,如添加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类似命令会有如下问题
[Errno 2] No such file or directory : u’C:\\demo\\sum.pyx,路径中是‘\\’不是’\’
3. ubuntu只能将.c文件转为.so文件,windows能将.c文件转为.pyd文件,pyd文件可以修改后缀为.dll