现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 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()
这里就是本文的核心了,解析用户的输入。
为了解析方便,学委仅摘取了核心代码段,我们看一下。
import sys
import getopt
def args2dict():
argv = sys.argv[1:]
if '-h' in argv or '--help' in argv:
show_help()
exit(0)
try:
opts, args = getopt.getopt(argv, "p:P:a",
["path=",
"author=",
"project="])
except Exception as e:
raise ValueError("Looks like missing value, please check usage by '-h'. Current error : %s " % str(e))
project = author = path = None
for opt, arg in opts:
if opt in ['-p', '--project']:
project = arg
elif opt in ['-a', '--author']:
author = arg
elif opt in ['-P', '--path']:
path = arg
if project is None:
print("please input project with '-p' or '--project', e.g. -p my\_project ")
raise ValueError("Missing project")
if author is None:
print("please input author with '-a' or '--author', e.g. -a whoami ")
raise ValueError("Missing author")
if path is None:
path = os.getcwd()
print("path is not given, so will use default as current directory : %s" % path)
return dict(project=project, author=author, path=path)
核心代码讲解
这里主要是分三步
- 获取终端参数,判断是否输出帮助
- 使用getopt内置库来解析p:P:a参数(-a, -P, -p) 处理为一个字典dict(管理project/author/path等信息)
- 返回字典给生成器调用,生成种子项目。
最后使用命令行调用你的库:
安装你的库:
pip install pypi_seed
使用命令如下:
pyseed -p demo_proj -a testuser -P '.'
效果如下,这么简单就生成了,项目了,稍微开发就能成为一个自己的模块,并分享。
总结
别人找到你的库就很不容易了,命令行的使用也必须力求简洁易懂 ,务必把帮助提示也做的友好一些,方便快速使用嘛!
- 学会使用setup.py 高效的组织项目代码和配置。
- 开发命令行工具重点是处理用户输入的参数。
- 一个优秀的开源项目需要提供简便的使用帮助。
完善的开源项目代码在这:Pypi-Seed on Github
喜欢Python的朋友,请关注学习 Python基础专栏 or Python入门到精通大专栏
持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!