亲自动手写一个Python库(一)
来源:互联网 发布:mysql use index 编辑:程序博客网 时间:2024/05/17 02:02
引子
学习编程以来,接触过Basic,C/C++,Swift,JavaScript和Python五种语言,其中最爱的当属Python,简洁的语法和丰富的库让我一直沉迷于此,尽管最近实习工作中用的是C++。
最近一年,我将大把的时间投入到学习编程中,收获了满满的成就感,希望未来工作之后,还能保持对编程的爱。学习Python以后,经常感慨开源的伟大,我也一直希望自己能成为这光荣世界的一员,所以趁着工作中需要,利用业余时间开发一个Python库解决CAA开发中遇到的问题。
需求
从去年十二月份至今,断断续续地接触了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上面点个赞。
作者:Gutierrez
来源:http://www.jianshu.com/p/696f1d558ce9
————广告时间————
马哥教育2018年Python自动化运维开发实战面授班2018年3月5号开班,马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才。
扫描二维码领取学习资料
更多Python好文请点击【阅读原文】哦
↓↓↓
- 亲自动手写一个Python库(一)
- 亲自动手写一个python库(二)
- Python利用Requests库写爬虫(一)
- Python从零开始写爬虫(一)requests库使用
- Python利用Requests库写爬虫(一)
- 自己写一个第三方分享库(一)
- python写一个爬虫(1)
- python写一个爬虫(2)
- python写一个爬虫(3)
- python写一个爬虫(4)改进
- 写网络爬虫学python(一)
- Python写爬虫技巧(一):总
- 用python写计算器(一)
- 学习python写网络爬虫(一)
- python 写爬虫 美女照片(一)
- 自己写一个MVC框架(一)
- 自己仿写一个ucosii (一)
- 自己写一个httpclient(一)
- JavaScript 实用技巧和写法建议
- 每天一道LeetCode-----将链表中满足条件的节点移动到前面
- 系统负载能力浅析
- 515. Find Largest Value in Each Tree Row
- 成为 Linux 终端高手的七种武器
- 亲自动手写一个Python库(一)
- spring整合hibernate的时候使用session的时候报:is not valid without active transaction
- 原生js实现addClass,removeClass,hasClass方法
- JVM内存模型
- SQL常用增删改查语句
- 经典SQL语句大全
- 20171105_shiyan_upanddown Struts上传、下载功能结合(集合模拟数据库)
- Learn Microservices with Spring Boot.pdf 2017 英文原版 免费下载
- compute节点 Linux bridge agent状态xxx但是自己计算节点配置文件又确定没有问题