文档章节

Python的Cython在Windows环境下的部署安装

WilsonET
 WilsonET
发布于 2013/04/06 15:59
字数 676
阅读 9158
收藏 9
点赞 2
评论 1

    大学课程主教java,搞过java web 后,突发感想对于OO语言的了解,以及设计模式与OO语言的优美的配合,但同时也发现java开发的周期性十分长,于是就四处需找不错的语言,终于发现了Python。

    不过,Python是解释性语言,机制效率相对于C/C++ 这种编译性语言效率会较低,也相对Java也会很低,不过,Python又名胶水语言,这也是吸引我的地方,他强大的类库,其他语言的扩充,如:Cython,Jython,IronPython等等,你说能不诱人么

    昨天一时兴起,玩起了Cython,但是发现,windows下的环境是多么的令人蛋疼,所以经过google,以及Python交流群的帮忙,最后终于完成了Cython编译的所需环境,下面,我来给大家说下,安装Cython所遇到的问题。

1、安装官方Cython提供的压缩包:

地址:http://www.cython.org/#download

解压后,在解压目录运行cmd命令:(在此之前,你要确保你的系统环境Path,有Python的安装目录)

python setup.py install

突然发现,运行出现‘error:Unable to find vcvarsall.bat’的错误

别急,这时我们在Python的安装目录:Python27\Lib\distutils 下新建一个文件,文件名为:distutils.cfg

里面内容如下:

[build]
compiler = mingw32

[build_ext]
compiler = mingw32

然后,我们重新回到Cython文件下,运行安装命令

此时发现又出现错误:

error: command 'gcc' failed: No such file or directory

这是因为我们缺少gcc编译环境!此时,我们需要为windows系统安装一个gcc环境,推荐用MinGW

下载地址:http://sourceforge.net/projects/mingw/files/

下载安装后,例如,我安装在D:\MinGW,将D:\MinGW\bin 配置到环境变量Path下,重启cmd,运行安装命令

此时,若还出现错误:error: command 'gcc' failed: No such file or directory


 

这是因为Python环境的问题,我们只需要在Python目录下:C:\Python27\Lib\distutils 里的cygwinccompiler.py 文件,将里面出现的字符串'-mno-cygwin'的全部删掉,就可以成功安装了。

如果,你觉得这么安装十分困难,十分麻烦,没事,我有一个Python类库安装版的网站

地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#cython

不过,很遗憾的是,如果你没有安装MinGW,以及修改添加相应的文件,你在编译相关的Cython程序也会照样出现这样的问题,所以,别懒了!

至于Cython的例子

推荐一篇文章:http://gashero.iteye.com/blog/649516

若大伙要是看不懂,就请留言,我给你们解答,或是到时写一篇详细的例子博文

© 著作权归作者所有

共有 人打赏支持
WilsonET
粉丝 1
博文 4
码字总数 2061
作品 0
广州
程序员
加载中

评论(1)

crisfan
crisfan
楼主,请问下你说的删掉字符串'-mno-cygwin'删掉是什么意思?这个if else都删掉吗?
C/C++ 和 Python混合编程

链接:https://www.zhihu.com/question/23003213/answer/56121859 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 #include int main(int argc, char *...

sirius_0
04/21
0
0
Python 与 C/C++ 交互的几种方式

python作为一门脚本语言,其好处是语法简单,很多东西都已经封装好了,直接拿过来用就行,所以实现同样一个功能,用Python写要比用C/C++代码量会少得多。但是优点也必然也伴随着缺点(这是肯...

吴金瑞
06/26
0
0
老司机都开火箭了!Cython 助力 Python NLP 实现百倍加速

雷锋网 AI 研习社按:本文的作者是来自 Hugging face 的科学家 Thomas Wolf,他的研究方向包括机器学习、自然语言处理和深度学习。在这篇博客中,他介绍了如何利用 Cython 和 spaCy 让 Pyth...

隔壁王大喵
06/26
0
0
比Python快100倍,利用Cython实现高速NLP项目

选自Medium,作者:Thomas Wolf,机器之心编译。 相关 Jupyter Notebook 地址:github.com/huggingface… 去年我们发布 Python 包 coreference resolution package 后,我们收到了来自社区的...

07/16
0
0
教程 | 比Python快100倍,利用spaCy和Cython实现高速NLP项目

  选自Medium   作者:Thomas Wolf   机器之心编译   参与:乾树、刘晓坤      Cython 是一个工具包,可以使你在 Python 中编译 C 语言,这就是为什么 numpy 和 pandas 很快的原...

机器之心
07/15
0
0
用Cython编译写出更快的Python代码

原文地址: http://www.behnel.de/cython200910/talk.html以下为原文 About myself Passionate Python developer since 2002 after Basic, Logo, Pascal, Prolog, Scheme, Java, C, ... CS s......

toil
2015/06/19
0
0
ubuntu 安装MYSQLDB , pymssql记录

安装MYSQLDB 9 wget http://jaist.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.4b4/MySQL-python-1.2.4b4.tar.gz tar zxvf MySQL-python-1.2.4b4.tar.gz cd MySQL-pytho......

丰圣谋
2013/09/30
0
0
mingw下编译pycrypto出现-mno-cygwin错误

唉,windows下装东西真麻烦。 在PYTHON安装目录,找到/lib/distutils/ http://stackoverflow.com/questions/6034390/compiling-with-cython-and-mingw-produces-gcc-error-unrecognized-comm......

老学生
2012/06/01
0
0
什么是Cython?0基础学python开发

  Cython是Python的一个超集,结合了Python的易用性和原生代码的速度,可以编译成C语言,产生的性能提升可以从几个百分点到几个数量级,具体取决于手头的任务。   使用Cython,你可以避开...

zhouzhou2018
05/22
0
0
Python 代码优化常见技巧

代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗 80% 的工作量。优化通...

大数据之路
2012/07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
今天
0
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部