Python中特定于平台的本地语言

2024-10-06 12:05:52 发布

您现在位置:Python中文网/ 问答频道 /正文

This page详细介绍了如何用C扩展Python。但是,我没有看到任何关于根据操作系统使用不同C代码的内容

我很确定这是可以做到的,因为python库colorama具有跨平台的终端颜色支持,据我所知,这需要不同的Windows和Unix代码。然而,我查看了source code却什么也找不到。应该注意的是,我可能错过了它,因为python和C都不是我的专长领域

TL;DR:如何使用特定于操作系统的C代码扩展python


Tags: 代码终端source内容颜色windowspage跨平台
1条回答
网友
1楼 · 发布于 2024-10-06 12:05:52

通常在C中,这是使用条件编译完成的。大多数编译器都会有一个指示操作系统的预处理器宏。例如:

#ifdef WIN32
     // do Windows stuff
#else
     // do something else
#endif

这些宏的名称是特定于编译器的

或者,我的首选方法是将特定于操作系统的代码放在自己的DLL或共享对象中,并将代码链接到与平台无关的python接口中

例如,您将Python接口编写为可移植的,当您得到特定于OS的东西时,您将调用您自己发明的通用函数。Linux、Windows、OSX等的每个共享库中都有一个此通用函数的副本,该副本在链接器时解析

是使用条件编译还是操作系统特定的库取决于代码的差异程度

相关问题 更多 >