首先,我给你介绍一下可以跨平台和不可以跨平台是为什么,有什么区别。
举个例子,c语言,有时候被称作中级语言,因为它既不是完全的低级语言,又算不上高级语言。在很大程度上,它也被称作不能跨平台的(或者说是源码级可以跨平台)。
为啥这样呢?
因为每种CPU架构的的指令集不一样,所以如果c语言编译成了二进制文件(也就是机器码),那么它只能在对应的机器上运行了。
那为什么说c在源码级可以跨平台呢?
因为每个平台都支持编译c语言,所以c语言在不同平台上面编译的最终二进制文件是不一样的,所以看作是源码级别的跨平台。
为啥Python可以跨平台?
因为Python是将这些自己的指令,最终转换成了c语言指令集,然后再c语言的指令集再进行编译为机器码,然后运行,这也是为什么python的性能差的原因了(当然,有很多提速的办法)。
那么为什么有的包不可以跨平台呢?
因为很多包是由c语言(还有其他的很多语言)来写的,那么这些语言所编译的二进制文件无法跨平台,所以,python的包无法跨平台。