Cython的使用

先报一下运行平台:

win10

python3.5

c编译器是vs2015

贴一下不同版本的配置方法:

Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%
Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%
Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%
Visual Studio 2015 (VS14): SET VS90COMNTOOLS=%VS140COMNTOOLS%
Visual Studio 2017 (VS14): SET VS90COMNTOOLS=%VS150COMNTOOLS% 

先是单一文件的转换:

目录结构:

其中的data.pyx是直接修改的data.py文件的后缀名,你可以随便找个py脚本。

setup.py:

# -*- coding: utf-8 -*-
"""
Created on Mon Nov 12 10:27:36 2018

@author: 96jie
"""

from distutils.core import setup
from Cython.Build import cythonize
     
setup(
      ext_modules=cythonize("data.pyx")
)

用命令行打开当前目录,输入:

python setup.py build_ext --inplace

build_ext是指明python生成C/C++的扩展模块(build C/C++ extensions (compile/link to build directory))

--inplace指示 将编译后的扩展模块直接放在与test.py同级的目录中。

运行后的结构:

data.c是data.py转化后的C代码文件,

test.pyd是python的动态链接库,我们在使用import test时会加载

build目录编译过程中生成的临时文件

可以做一个测试:

创建test.py,输入:

import pyximport
pyximport.install()
import data

file_dir = 'H:/tensorflow_python/train_picture_new/'

a,b = data.get_files(file_dir) #get_files在data中定义,直接调用

在spyder中运行后可以看到调用成功:

 

多个脚本:

只需要修改setup.py:

# -*- coding: utf-8 -*-
"""
Created on Mon Nov 12 10:27:36 2018

@author: 96jie
"""

from distutils.core import setup
from Cython.Build import cythonize
     
setup(
      ext_modules=cythonize("*.pyx")
)

在同样运行:

python setup.py build_ext --inplace

新建test.py:

import pyximport
pyximport.install()
import training

运行:

成功开始训练。

这里import的是pyd文件,所以将目录改为如下,也可以运行:

 

18/11/13补充:

在多个文件转换的文件夹目录中,不能包含‘__init__.py’,否则会报错。

多个pyx转换成一个pyd:

新建total.pyx:

include "input_data.pyx"
include "model.pyx"
include "ttttt.pyx"
include "training.pyx"

然后将setup.py中的‘*.pyx’改为‘total.pyx’即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值