栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Cython中制作可执行文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Cython中制作可执行文件

您想要的是

--embed
Cython编译器的标志。没有一吨就可以了文件,但是这是我能找到。它确实链接到一个简单的工作示例。

要将Cython源代码编译为C文件,然后可以将其编译为可执行文件,请使用类似的命令

cython myfile.pyx--embed
,然后使用正在使用的任何C编译器进行编译。

编译C源代码时,您仍然需要在目录中包含Python标头,并链接到系统上对应的Python共享库(文件名称类似

libpython27.so
libpython27.a
如果您使用的是Python
2.7)。

编辑: 这是有关如何获取命令的更多说明,这些命令包括正确的标头和针对正确的库的链接。

如前所述,您需要像这样运行Cython编译器:

cython <cython_file> --embed

要使用gcc进行编译,您将需要找到python标头在系统上的位置(您可以通过运行获取此位置

distutils.sysconfig.get_python_inc()
(必须首先将其导入)。它可能只是
/include
Python安装目录中的子目录。

您还必须找到python共享库。对于Python
2.7,它将

libpython27.a
在Windows或
libpython2.7.so
Linux上。

您的gcc命令将是

gcc <C_file_from_cython> -I<include_directory> -L<directory_containing_libpython> -l<name_of_libpython_without_lib_on_the_front> -o <output_file_name>

包含该

-fPIC
标志可能是明智的。在Windows 64位计算机上,您还必须包括
-D MS_WIN64
告诉mingw为64位窗口编译的标志。

如果要编译依赖于NumPy的内容,则还需要包括包含NumPy标头的目录。您可以通过运行来找到该文件夹

numpy.get_include()
(同样,在导入numpy之后)。然后,您的gcc命令变为

gcc <C_file_from_cython> -I<include_directory> -I<numpy_include_directory> -L<directory_containing_libpython> -l<name_of_libpython_without_lib_on_the_front> -o <output_file_name>

该gcc命令选项指南可能会有所帮助。

另外,如果可能的话,我建议您使用Cython内存视图。这样可以避免您在Cython文件中包含NumPy标头并将NumPy
pxd文件包含在内。这也使切片操作更易于C编译器优化。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571013.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号