现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
正式的Python专栏第10篇,同学站住,别错过这个从0开始的文章!
前面学委给大家缕一缕了如何开发一个python库并导入运行, 基本完成了一个初步的库
下面指导大家把库做成命令行工具,别人就能像我们使用python或者pip工具一样,输入命令就能使用我们的库!
读者可以查看学委主页加入交流,或者去GitHub给个Star。
把Python库做成命令行的准备
项目结构如下,首先要让它支持命令行。
记得前面的项目截图里面还有一个setup.py 文件。
setup.py组织了整个项目模块代码和基础信息,支持命令行的诀窍就在里面。
先看一下代码,大家重点观察一个熟悉:entry_points 。
# -\*- coding: utf-8 -\*-
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: OpenSource
# @File : setup.py
# @Project : pypi\_seed
from distutils.core import setup
from setuptools import find_packages
setup(name='pypi\_seed', # 包名
version='1.0.3', # 版本号
keywords=("pypi\_seed", "seed", "generator", "levin", "leixuewei"),
description='A small tool to demo on upload package to pypi and utility scripts to generate a pypi seed',
long_description="""A small tool to demo on upload package to pypi and utility scripts to generate a pypi seed!
Powered by py4ever team!""",
author='levin',
author_email='790839397@qq.com', #项目联系人
url='https://github.com/py4ever/pypi\_seed',
#学委删简了一些,非本文重点的信息
entry_points={
'console\_scripts': [
'pypiseed = pypi\_seed.main:main',
'pyseed = pypi\_seed.main:main'
]
},
classifiers=[
'Intended Audience :: Developers' # 学委删简了一些支持多版本的,需要的去github或者gitee借鉴pypi\_seed的setup.py
],
)
解释一下setup.py
简单理解,这个setup.py 就相当于一个开源模块的地图。
它包括了作者信息,项目说明,版本,项目链接,更重要的,安装后命令行的程序入口就放在“entry_points"。
设置了entry_points, 我们使用pip工具安装这个模块的时候,它会自动帮我们创建相应的文件。
比如上面的entry_points是两个命令工具:
- pypiseed 为命令行工具,对等与调用pypi_seed.main:main
- pyseed 为命令行工具,对等与调用pypi_seed.main:main
补充说明setup.py其他参数解释
重点是作者,项目名称,联系信息,下面整理解释:
- name : 项目名称,特别重要!其他开发者通过这个来搜索你的库
- author : 作者
- keywords : 项目关键字
- description : 项目说明
- author_email : 作者邮箱信息
- url : 项目主页
这些比较直白,根据开源工具的定位来编写完善。
项目说明如果写不下,就放置在long description字段。万一用户在用的时候有啥反馈,还能够联系到邮箱,或者通过项目主页继续互动,这样能够保持项目的不断完善,与时俱进!
第二步 开发一个命令行处理的Python程序
生成了程序入口了,我们可以通过
pyseed 参数 #调用pypi\_seed了
好了,说完entry_points, 它调用到了pypi_seed.main:main。 学委已经帮大家看了源码了。
pypiseed / pyseed里面调用了一个程序内的show_help 和args2dict 两个方法。
开源项目源码解析
这里是show_help方法,重点是输出打印一些使用信息,和项目简易说明。
def show\_help():
print('usage:')
print('-h, --help: print help message.')
print('-p, --project: your desired project name')
print('-P, --path: where to save the sample project after code-generation')
print('-a, --author: the author information')
print("===========================================")
show_sample_run()
show_about()
这里就是本文的核心了,解析用户的输入。
为了解析方便,学委仅摘取了核心代码段,我们看一下。
文末有福利领取哦~
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
👉**一、Python所有方向的学习路线**
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。![img](https://img-blog.csdnimg.cn/c67c0f87cf9343879a1278dfb067f802.png)
👉**二、Python必备开发工具**
![img](https://img-blog.csdnimg.cn/757ca3f717df4825b7d90a11cad93bc7.png)
👉**三、Python视频合集**
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
![img](https://img-blog.csdnimg.cn/31066dd7f1d245159f21623d9efafa68.png)
👉 **四、实战案例**
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。**(文末领读者福利)**
![img](https://img-blog.csdnimg.cn/e78afb3dcb8e4da3bae5b6ffb9c07ec7.png)
👉**五、Python练习题**
检查学习结果。
![img](https://img-blog.csdnimg.cn/280da06969e54cf180f4904270636b8e.png)
👉**六、面试资料**
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
![img](https://img-blog.csdnimg.cn/a9d7c35e6919437a988883d84dcc5e58.png)
![img](https://img-blog.csdnimg.cn/5db8141418d544d3a8e9da4805b1a3f9.png)
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**