老用别人的库?今天手把手教你动手写一个Python库,真香!

更多Python视频、源码、资料加群683380553免费获取

需求

从去年十二月份至今,断断续续地接触了DS CAA开发工作,很多人可能并不了解DS CAA。无论是手机家电之类的消费电子产品还是飞机轮船等大型制造产品,在制造之前都需要采用CAD软件进行设计。从上世纪60年代CAD软件开始商用至今,历经技术的不断变革和各家公司的兼并联合,已经形成达索、西门子、PTC“三国争霸”的局面。我实习公司主推的是达索的CAD软件,即CATIA。在CAD领域,我们将利用厂商提供的API在已经成型的CAD软件上增加一些程序(功能)称之为“二次开发”,上面所述的DS CAA就是对CATIA的二次开发。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

DS CAA采用的开发语言是C++,由于是完全的基于SDK和API的开发,往往开发工作要受限于达索的接口和框架。开发中大量的精力不得不花费在阅读达索API接口文档,查找API,查找模块,查找框架之中,做过类似工作的人一定能理解这其中的个把心酸。在慢慢的工作中,逐渐有了想法,将散落于文档中的API接口用数据库管理,根据自己所写的程序自动添加头文件,模块和框架。当然采用最爱的Python写一个库来解决这一问题,也许并不是最好的解决办法,但我愿意就好,也希望能帮助的苦逼的CAA开发者。

环境搭建

废话已经说了太多,我们下面将利用PyCharm结合VirtualEnv搭建项目环境。

安装好Pycharm后,点击configure->Preferecnces进入设置页面,找到Project Interpreter设置选项,该选项显示了当前可用的Python解释器,点击右上角设置图标,然后选择Create VirtualEnv来创建一个Python虚拟环境,虚拟环境的好处是你可以针对自己的虚拟Python环境为所欲为,而不用担心搞坏系统的Python环境,笔者曾经将Mac上的Python环境搞崩溃后,只得默默重装系统。

此外,Pycharm还可以方便的帮你管理虚拟环境的Python包,点击左下角➕即可添加库到当前环境中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当然,此虚拟环境同样可以通过命令行激活,如我的虚拟环境安装位置为:~/Developer/Python3Env,里面VirtualEnv会帮我们搭建好一整套Python所需的包和执行命令。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

结下来就用Pycharm创建一个项目,只需注意选择一个虚拟环境即可,我给自己的项目起了个还不错的名“CAAFinder”,项目已经放在GitHub上面,如果有CAA开发者看到,欢迎和我一起完善项目,也欢迎你可以测试它。即使你不是CAA开发者,也希望在Github上面点个赞。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

项目文档结构

首先我们先构建出自己项目的文档结构,首先是LICENSE和README.md,这两个文件并不是必要的,但是最好将其加上,方便别人了解你的项目。README.md是关于本项目的介绍,LICENSE是表示该项目所遵循的开源协议,一般MIT用的比较多,其他协议你可以百度谷歌了解一下。

接下来是打包库需要的一些文件,主要有http://MANIFEST.in和setup.py两个文件。http://MANIFEST.in表示打包时不会被自动包含进去的附加文件清单。setup.py是打包程序配置文件,需要设置一些选项。此外,setup.cfg是包含setup.py额外配置信息的文件,我没有用到这其中的设置,所以本项目中其是空的。

caafinder文件夹就是我们要写的Python程序,我们要注意这个文件夹里必须有__init__.py这个文件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下面是一下setup.py的一些简单配置选项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于模块

模块也就是库,我们自己写程序时,通常通过import XX来导入一个需要的模块,在Python中,一个py文件就是一个模块,如一个abc.py的文件就是一个名字叫abc的模块。

你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package),包是一个带有__init__.py的文件夹,如图中文档所示,我们有一个包caafinder,因为它的子级有一个__init__.py,包caafinder拥有database和workspace两个模块。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是caafinder。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

程序打包

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值