Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句。
Python支持命令式程序设计、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。
这篇文章将会聊聊python代码中的入口点.很多人可能知道,入口点一般会放在setup.py 文件中,经过打包后可以作为命令行使用,不过很少有人会去用它.接下来,我将会介绍如何使用入口点生成python包,之后就可以让别人在代码中或者命令行下使用.
安装过python包的都知道使用pip install , setup.py就是定义了你自己开发的包的相关信息,然后可以打包上传到python的包管理中心供别人下载.而入口点entry_points可以让包作为命令行工具使用.
Snek,Inc.
恭喜你!你刚刚被任命为"snek半导体和软件公司"的CEO,作为CEO,你的第一个工作是让员工开发出snek的原型系统,很快,工程师就做出来了,它是一个python脚本,snek.py:
在公司产品发布的那一天,你演示了这个原型系统,运行很顺利:
SaaS--Snek as a Service
不幸的是,用户不会使用python,他们只想在电脑的命名行下直接使用Snek的服务,于是工程师们加班加点作出了下一个版本,让snek在安装时自动生成控制台脚本,这样就可以在命令行下运行了.他们是怎么做的?只需要在setup.py 脚本中包含包名,依赖等信息,像下面这样:
下面的代码就是指定了应该从snek脚本的main函数开始执行.
工程师说,控制台脚本就是特殊的入口点,setuptools 在你的包被别人安装时,读取其中的内容并生成某些脚本文件.现在,让我们从源代码中安装(当然你可以发布为python库,让别人使用pip下载安装):
在公司的年度产品会上,你展示了这个amazing的产品:
Snek for Everyone
没有人不喜欢Snek,公司的IPO超过了60亿美元.有些高级用户希望为他们量身定制高级的版本.工程师又加班加点做了出来:
他们加了一个豪华版的Snek,这让高级用户特别开心.小编推荐一个学python的学习裙,【六九九+七四九+八五二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
Snek International Community
全球数百万人都在使用snek,人们对snek不同版本的需求越来越高,而且一些snek的专业用户(程序员)要求snek可以定制,他们想开发自己的snek版本.
他们增加了snek的基础架构,当snek运行时,使用被称作snek_types 的入口点注册其他类型的snek,这样就能动态的在控制台输出不同的snek版本.
具体来说,get_sneks 中的pkg_resources.iter_entry_points('snek_types') 遍历所有注册到入口点的snek名,然后加入snek版本中.于是,开发者们加入了一个可爱版本的snek,命名为cute_snek.py :
如何找到这个可爱版本的snek呢?像下面这样定义setup.py:
代码中指定了从cute_snek.py脚本寻找cute_snek.
然后像之前一样打包:
现在我们就能在命令行下成功的运行这个可爱版本的snek,这是从cute_snek中动态加载的:
既然cute_snek可以动态的加载,那么所有类型的snek应该都可以动态加载,于是工程师们又修改了代码:
所有的snek都从snek_types中加载.小编推荐一个学python的学习裙,【六九九+七四九+八五二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
现在重新打包snek:
大功告成!!!
到此为止,你应该大概知道了如何使用python中的入口点了吧.
Python可以做什么?
web开发和 爬虫是比较适合 零基础的
自动化运维 运维开发 和 自动化测试 是适合 已经在做运维和测试的人员
大数据 数据分析 这方面 是很需要专业的 专业性相对而言比较强
科学计算 一般都是科研人员 在用
机器学习 和 人工智能 首先 学历 要求高 其次 高数要求高 难度很大
领取专属 10元无门槛券
私享最新 技术干货