大家好,今天小编关注到一个比较有意思的话题,就是关于开源项目学习python的问题,于是小编就整理了4个相关介绍开源项目学习Python的解答,让我们一起看看吧。
Python是开源的,它可以被移植到许多平台上是对的还是错的?
可以。卫星发烧友界无人不知的dream box机顶盒,应用层就是Python写的。自己移植,困难的地方就是依赖库的匹配,所以还是用open embedded 或者 yocto 吧。
python开源库原理?
Python的官方文档中有专门一个叫Python/C API的文档,是Python暴露给用户来编写模块的api,是用纯c语言的,直接编译生成dll或so动态链接库,改扩展名为pyd就可以放到python目录下的DLL文件夹里,在Python里直接import就行。
用这种方式你就基本能彻底理解Python中一切皆对象的概念,所有的所有都是一个叫PyObject的东西,就连代码块都是一个叫PyCode的东西。也会让你逐渐注意到Python的垃圾回收机制里引用计数的东西,每次处理PyObject都需要考虑引用计数要不要加1,什么时候加1,这些都是手动的。
看了其他回答,有用cpython来调c++动态链接库的,傻子才会这么干,low的一批。有用boost Python的,那玩意最近貌似不支持跨python版本了,其实boost Python就是对Python/C api进行封装。
python开源库怎么编译?
在Python中,大多数开源库不需要编译,因为它们是用Python编写的,可以直接在解释器中运行。但是,如果你想将Python代码编译成可执行文件或者加密保护你的代码,你可以使用一些工具,如PyInstaller、py2exe或Cython。
这些工具可以将Python代码转换为可执行文件或C/C++代码,并生成与操作系统兼容的二进制文件。
你可以根据你的需求选择适合的工具,并按照其文档提供的指南进行编译。
为什么C++没有Python那么多开源库?
正巧,c/c++和python都写过项目,题主所述的c++没有python开源库多,我是认同的。
代码本质上。c++是编译型语言,python是解释型语言。c++很多静态或者动态的类库都是闭源的,比如Linux里面的.a文件是静态库,.so文件是动态库,比如windows里面的.lib文件是静态库,.dll文件是动态库,都是二进制文件。所以如果问题把“开源”去掉,就值得商榷了,可以这么说,只要你c++玩的溜,整个操作系统API都是你的类库。c++太底层了,导致其实很多著名的python的库都衍生自c++库。
方便程度上。前面说了,c++的开源库最终都要编译成静态库或者动态库被你自己的代码调用。Linux下面./configure,然后make,readme里面基本就这两句话,看着命令行一堆报错,你会痛骂作者是个大忽悠。windows更惨,你是vs2008的编译器,开源库只给了vs2012的工程文件,这时候你就要考虑是把你的代码升级到vs2012上报错少,还是把开源库降级到vs2008报错少,考虑再三,还是不用第三方库了,看懂开源代码,自己动手实现得了,想偷懒发现更麻烦了。python很简单,pip下下来就可以直接用了,唯一要考虑的就是py2和py3的区别。
应用场景上。python偏应用层,追求的就是开发效率,对程序员要求比c++低,更适合于初学者和编程爱好者,自然需要更多的库来支持,后面自然而然出现pip这样全球共享的平台也不奇怪。c++却感觉慢慢走向精英语言,很多技术被大企业[_a***_],形成商业软件,使用它们的接口价格昂贵,能够在大企业用c++写项目的都是大神,不屑于调用开源库,实现任何功能都是自己造轮子,用时间换取更贴合自己项目的功能,使自己程序更加短小精悍,最终结果也就是越来越闭源。
python底层几乎全是c/c++库啊,拿python最火的领域来说,opencv, tensorflow,pytorch,甚至numpy,没有一个例外。python只是上面一层很薄的封装,c或c++才是水面下占99.99%体积的冰山。
你看看opencv源码就知道,python的绑定只有几个小文件,而真正实现部分却是成千上万的c++文件。
如果说有1个好用高效且强大的python开源库可用,请相信那很可能因为它下面有数倍甚至上万倍大小的c/c++开源库在默默支持着。点下鼠标看看原码就不会这么天真无邪的胡说八道了。
为什么会这样?你心爱的python居然只是件漂亮的衣服?因为python从出生开始就注定了它跑的慢,那是真的慢!现在几乎没有什么其他流行语言比它还慢的! 比如一个普遍使用的语言javascript,优点之一就是跑的快!所以很多人把c/c++反过来编译成j***ascript跑在浏览器里, 同样情况却永远不会发生在python身上;多年来人们绞尽脑汁提高它的速度都没辙,甚至还推出了cython,但也最多只是小范围使用罢了,无法改变python的内在基因。一旦python离开c/c++,基本就只能像蜗牛一样爬!
到此,以上就是小编对于开源项目学习python的问题就介绍到这了,希望介绍关于开源项目学习python的4点解答对大家有用。