python – 将预编译的Cython代码分发给Windows
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 将预编译的Cython代码分发给Windows,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1931字,纯文字阅读大概需要3分钟。
内容图文
对于一堂课,我写了一个数值问题的求解器.我的代码运行在一个IPython笔记本中,其中大部分代码都是纯Python NumPy matplotlib,但性能关键部分是用Cython编写的(并包含在IPython %% cython魔术中).教授喜欢我的解决方案,并要求我向一些本科学生提供,他将在另一个班级教授类似的主题作为参考资料.问题是,我不确定分发代码的最佳方式是什么.
我的主要问题是,大多数学生可能会运行Windows.在Windows上编译Cython代码是我最后一次做的噩梦,因为你必须与几个不同的C编译器混在一起,直到找到一个有效的编译器.对于想要运行我的笔记本以获得有效的Cython环境的每个学生来说,绝对不能期望它.
我有想法在Windows机器上预编译代码的Cython部分(它不需要由学生更改)并分发pyd文件.所以我的问题是:
我可以期望在Windows上编译的Cython二进制文件可以在另一台Windows机器上使用吗?
解决方法:
是的,您可以期望二进制.pyd文件在不同的Windows机器上运行,只要python版本与编译Cython模块的版本匹配,包括x86 / x64差异.
在Windows上构建扩展模块不再像以前那样困难.
最简单的方法是使用Anaconda Python,其中包括安装程序中的编译器.它是目前可用的“Just Works”最接近的东西.如果需要,还可以使用conda命令行工具创建虚拟环境,从而可以非常轻松地为每个Python版本构建二进制版本.你几乎只是激活一个env,运行构建(python setup.py bdist_wheel来创建一个.whl文件),为另一个Python版本激活下一个env,运行构建,依此类推.您最终得到的滚轮文件(* .whl)可以复制到其他机器,然后您只需直接pip install blah.whl.
使用库存Python也是可管理的,但需要更多的工作.对于Python 2.7,您需要安装Windows SDK 7.0,对于Python 3.4,您需要Windows SDK 7.1.这些SDK提供了为x86和x64构建的编译器.不幸的是,对于Python 3.5,你需要一个不同的东西,Visual Studio 2015.我的博客有一个short entry,它详细介绍了如何设置2.7和3.4. (我仍需要将其更新为3.5).
有一些工具可以让您更容易直接编译.pyx文件. Cython本身提供了一个命令行工具cythonize,您可以使用它来构建这样的文件:
> cythonize -b blah.pyx
还有其他工具,比如我的easycython,它提供的不仅仅是cythonize,但是有一些便利,比如默认情况下可选的numpy支持和优化的编译器标志.无论哪种方式,您都可以复制.pyd扩展模块本身并将其放在Python路径上的某个位置.但车轮更好.
内容总结
以上是互联网集市为您收集整理的python – 将预编译的Cython代码分发给Windows全部内容,希望文章能够帮你解决python – 将预编译的Cython代码分发给Windows所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。