游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

15步,你就能拥有自己的Python程序包

  每个软件开发员和数据科学家都难免要做程序包。本文推荐一篇Python开源程序包的制作指南,希望这个包含了具体操作步骤的指南能让你在构建程序包时不用花那么多耐心和时间。(适用于macOS系统的Python3。7版本)
  尝试着自己去构建美丽的东西吧!
  第1步:制定计划
  我们的最终目的是制作一个很简单的Python库,它能够让用户轻松地将Jupyter笔记本转换为HTML文件或Python脚本。
  程序包的第一个迭代可以让用户调用print语句的函数。
  既然我们已经知道想做什么了,接下来要给包命名。
  第2步:命名
  命名并不简单。名字要取得独特,简短且好记,要全部都是小写字母,绝对不能有破折号或其他标点符号,下划线也不行。给包命名的时候,还需要在GitHub,Google和PyPI上确认这个名字是否可用。
  如果你对包期望很高,希望在某一天它在GitHub上会有10000颗星星,那你还得确认这个名字是否能用于社交网络。在本文的示例中,我们把包命名为notebookc,因为它能用于各种平台,简短而且有描述意义。
  第3步:检查配置
  确保你安装配置了Python3。7,GitHub和Homebrew。需要的话,可以在下面下载:
  Python
  下载安装Python3。7:https:www。python。orgdownloads
  GitHub
  免费注册GitHub账户:https:github。comjoin
  安装Git:https:help。github。comarticlessetupgit
  Homebrew
  Homebrew是Mac系统特有的程序包管理器。(安装说明:https:brew。sh)。
  Venv
  如果使用的是Python3。6版本,建议用venv来创建虚拟环境以构建程序包。用Python来管理虚拟环境的方法很多,可遵循的建议也有很多。
  从Python3。3版本起,Python就自带venv了,但要注意,从Python3。4的版本开始,venv才能在虚拟环境中安装pip和setuptools。
  用下列命令在Python3。7中创建虚拟环境:
  python3。7mvenvmyenv
  用你喜欢的名字替换myenv,激活虚拟环境:
  sourcemyenvbinactivate
  现在可以在终端提示的最左端看到(myenv),或者看到你给虚拟环境取的名字。
  完成之后,使用deactivate停用虚拟环境。
  之后,在GitHub上进行设置。
  第4步:在GitHub上创建组织
  GitHub在版本控制注册上是市场领导者,其他的包括GitLab和Bitbucket也很受欢迎。本指南中我们是用GitHub。
  按照提示,在GitHub上创建一个新组织。我们将组织命名为notebooktoall。你可以在个人帐户下创建知识库(repository),但我们的目标之一是学习如何为更大的群体创建一个开源项目。
  第5步:创建GitHub知识库
  创建一个新的知识库。
  从下拉列表中添加gitignore,为你的知识库选择Python。gitignore文件的内容与要从Git知识库中剔除的文件夹和文件类型相匹配。你可以之后再修改gitignore以剔除其他不必要或敏感的文件。
  建议从下拉列表的添加许可证(Addalicense)中选择一个许可证,它决定了使用知识库内容的用户能做什么。一些许可证会比较宽松,如果没有选择许可证,系统会采用默认的版权法。
  本文的项目选的是通用公共许可证v3。0(GeneralPublicLicensv3。0),因为它用的广泛,而且可以保证终端用户运行、学习、共享和修改软件的自由来自维基百科。
  第6步:复制和添加目录
  选择要在本地复制知识库的位置,然后按下面的说明运行:
  复制githttps:github。comnotebooktoallnotebookc。git
  替代组织和知识库。
  使用桌面图形用户界面(GUI)或代码编辑器进入项目文件夹,或者用cdmyproject的命令行进入项目文件夹,然后用lsA查看文件。初始文件夹和文件如下:。git
  。gitignore
  LICENSE
  README。rst
  为主项目文件创建一个子文件夹,建议子文件夹的命名与程序包的相同,并确认名称不包含空格。
  在子文件夹中创建一个名为init。py的文件,这个文件可以先空着。将文件导入到子文件夹时,这个文件是必需的。
  创建另一个与子文件夹同名的文件,并在文件名后添加。py。我的文件名是notebook。py。你可以按自己心意给这个Python文件命名。
  现在notebookc目录内容如下:。git
  。gitignore
  LICENSE
  README。rst
  notebookcinit。py
  notebookcnotebookc。py
  第7步:创建和安装requirementsdev。txt
  在项目目录顶端创建一个requirementsdev。txt文件。通常把这个文件命名为requirements。txt。这样命名强调了这些程序包全部是开发员安装的。
  在requirementsdev。txt里,要安装特定版本的pip和wheel。
  pip19。0。3
  wheel0。33。1
  注意,这里用两个等号以及版本号指明了应安装的程序包的确切版本。
  将特定版本的程序包安装到requirementsdev。txt中。
  如果合作开发员要分裂项目知识库,用pip来安装特定requirementsdev。txt程序包,就要用和你一样版本的包。此外,在创建文件的时候,ReadTheDocs可使用这个文件来安装程序包。
  在已经激活的虚拟环境中,使用以下命令将程序包安装到requirementsdev。txt:
  pipinstallrrequirementsdev。txt
  第8步:代码和提交
  作为示例,我们先创建一个很简单的函数。你可以之后再建一个很牛的函数。
  在主文件中键入以下内容:
  (我们要键入的是notebookcnotebookcnotebookc。py)defconvert(myname):
  Printalineaboutconvertinganotebook。
  Args:
  myname(str):personsname
  Returns:
  None
  print(fIllconvertanotebookforyousomeday,{myname}。)
  这就是我们建的函数啦。
  文档字符串(docstrings)以三个连续的双引号开始并结束。在以后的文章中,它们会被用于自动创建文档。
  现在提交修改。
  第9步:创建setup。py
  setup。py文件是程序包的构建脚本文件。Setuptools的setup函数可构建要上传到PyPI的程序包。Setuptools里有程序包的信息,版本号以及用户所需要的其他程序包的信息。
  以下是本文的setup。py文件示例:fromsetuptoolsimportsetup,findpackages
  withopen(README。md,r)asreadmefile:
  readmereadmefile。read()
  requirements〔ipythongt;6,nbformatgt;4,nbconvertgt;5,requestsgt;2〕
  setup(
  namenotebookc,
  version0。0。1,
  authorJeffHale,
  authoremailjeffmshalegmail。com,
  descriptionApackagetoconvertyourJupyterNotebook,
  longdescriptionreadme,
  longdescriptioncontenttypetextmarkdown,
  urlhttps:github。comyourpackagehomepage,
  packagesfindpackages(),
  installrequiresrequirements,
  classifiers〔
  ProgrammingLanguage::Python::3。7,
  License::OSIApproved::GNUGeneralPublicLicensev3(GPLv3),
  〕,
  )
  注意,longdescription是README。md文件内容里的。
  在setuptools。setup。installrequiresincludes中指定的requirements列表包括了程序包运作所需的所有依赖程序包。
  与requirementsdev。txt开发所需的包不同,这个包列表应尽可能地宽松。
  将installrequires的包列表限制在只能安装需要的包,你肯定不想用户安装不必要的包。注意,只需要列出不属于Python标准库里的包即可。如果用户要用你的包的话,就必须要安装Python。
  这个包不需要任何外部依赖,因此你可以剔除上面列出的四个包。如果共同开发员要分裂项目知识库,用pip安装特定包的话,要用和你一样版本的包。
  将代码提交到本地Git知识库。现在万事俱备,可以开始建程序包了!
  第10步:构建首个版本
  Twine是一个公用程序组,可以在PyPI上安全地发布Python包。将Twine包添加到requirementsdev。txt的下一个空行中,如下所示:twine1。13。0
  然后重新安装requirementsdev。txt包以将Twine安装到虚拟环境中。
  pipinstallrrequirementsdev。txt
  然后运行下列命令,创建包文件:pythonsetup。pysdistbdistwheel
  过程中会创建许多隐藏的文件夹:dist,build等,我创建的是notebookc。egginfo。我们看下dist文件夹中的文件。。whl文件是Wheel文件,即创建的分布。。tar。gz文件是源代码压缩文档。
  Wheel
  在用户的设备上,pip会像wheels一样在任何可能的时候安装程序包。Wheel在安装的时候更快。当pip不能安装wheel时,它就会回到源代码压缩文档。
  让我们准备好上传wheel和源代码压缩文档吧。
  第11步:创建TestPyPI帐号
  PyPI是PythonPackageIndex的缩写,它是Python官方程序包管理器。pip可以从PyPI中抓取没有在本地安装的文件。
  PyPI
  TestPyPI是PyPI中运行的一个测试版本。注意,在测试站点上传和在官方站点上传的密码是不同的。
  创建TestPyPI帐户:https:test。pypi。orgaccountregister。
  第12步:在TestPyPI上发布
  Twine
  用Twine将你的程序包安全地发布到TestPyPI上。键入下列命令无需修改。
  twineuploadrepositoryurlhttps:test。pypi。orglegacydist
  系统会提示你输入用户名和密码。记住,TestPyPI和PyPI的密码是不同的。
  需要的话,就修正包的错误,在setup。py中创建新的版本号,删除旧版本的build,dist和egg文件夹。用pythonsetup。pysdistbdistwheel重建,用Twine重新上传。在TestPyPI上的版本号没什么意义,这并不是大事,因为你是唯一用这些版本的包的人。
  成功上传程序包之后,确认它可以被安装使用。
  第13步:确认安装和使用
  在终端创建另一个标签,并创建另一个虚拟环境。
  python3。7mvenvmyenv
  激活它
  sourcemyenvbinactivate
  如果你已经将包上传到PyPI官方网站,接下来就要用pip安装这个程序包。可以在PyPI检索到该程序包,然后用修改过的命令安装它。
  从TestPyPI安装程序包的官方指导如下:
  可以通过indexurlflag命令pip在TestPyPI上下载安装包,而不用在PyPI上下载。
  pipinstallindexurlhttps:test。pypi。orgsimplemypackage
  如果你要允许pip在PyPI上下载其他的包,可以命令extraindexurl指向PyPI。如果你测试的程序包有依赖包,这将会非常有用。
  pipinstallindexurlhttps:test。pypi。orgsimpleextraindexurlhttps:pypi。orgsimplemypackage
  如果你的程序包有包依赖,用上面提到的第二个命令,并替换你的程序包名称。
  你应该看一下安装到虚拟环境的程序包的最新版本。
  为了确认程序包可以使用,用python在终端启动IPyon会话。
  导入函数并用字符串参数调用函数。我的代码如下:
  fromnotebookc。notebookcimportconvert
  convert(Jeff)
  随后可以看到下面的输出:I’llconvertanotebookforyousomeday,Jeff。
  确认可以用了。
  好了,现在把作品上传到GitHub吧。
  第14步:上传到GitHub
  确保你的代码已提交。
  notebookc项目文件夹如下所示:。git
  。gitignore
  LICENSE
  README。md
  requirementsdev。txt
  setup。py
  notebookcinit。py
  notebookcnotebookc。py
  剔除你不想上载的虚拟环境。在创建知识库时选择的Python的。gitignore文件可使构件不被列入索引。
  你可能需要删除虚拟环境文件夹。
  用gitpushoriginmybranch。将本地分支传到GitHub。
  第15步:创建与合并PR
  在浏览器中打开Github,可以看到拉入请求选项。长按绿色按钮创建并合并你的PR,并删除远程特征分支。
  回到终端,使用gitbranchdmyfeaturebranch删除本地特征分支。
  回顾:制作程序包的15个步骤
  1。制定计划
  2。命名
  3。检查配置
  4。在GitHub上创建组织
  5。创建GitHub知识库
  6。复制和添加目录
  7。创建和安装requirementsdev。txt
  8。代码和提交
  9。创建setup。py
  10。构建首个版本
  11。创建TestPyPI账号
  12。在TestPyPI上发布
  13。确认安装和使用
  14。上传到GithHub
  15。创建与合并PR

我感觉挺搞笑的,你们看呢?图一看图猜物你们猜猜我这个大弧形的东西是啥(答案在后面),像不像射箭的弓,拿着这个走了一路,还好下雨人不多。图二好漂亮的猫分享一只比较漂亮的猫。看着真立正。……低调的宁夏首富打造世界最大的锰业集团,身价133亿低调的宁夏首富:打造世界最大的锰业集团,身价133亿推荐语:宁夏是我国西部地区的一个省份,与此同时也是我国面积最小的自治区。平时宁夏尤为低调,极少会被媒体提及。不过,作为……智慧工厂如何在现代化工厂部署安防视频监控?一、行业现状工厂传统粗放的加工模式即将被淘汰,智能化、集约化、个性化一定是制造业的大趋势,全球制造业都在升级转型中。安全管控作为生产企业的重中之重,容不得半点马虎,现有的……LRLINk联瑞升级千兆POE智能以太网图像采集卡随着现在信息科技的快速革新,机器视觉、运动分析、交通监控、无人驾驶,以及医学成像等应用领域得到迅猛发展,这依赖于实时图像采集卡的广泛性应用。区别于传统图像采集,在现代化图……中国失去澳大利亚卫星站?中国航天成就显著,航天精神勇往直前据有关报道,瑞典空间研究中心的澳大利亚分部,在2011年曾与我国签订了合作协议,同意让其设在该国的一处卫星站为我国航天探索项目提供服务。然而,近期他们宣布,合作协议到期后将不再……暴跌50瑞幸被要求退市复牌即闪崩!昨日消息,瑞幸咖啡公司的股票将于今晚7点在纳斯达克交易所复牌。然而,纳斯达克的退市通知将会让瑞幸咖啡再次迎来一波抛售潮。去年5月17日,瑞幸咖啡成立不到两年,赴纳斯达克上……公司制的黄昏公司制在经济发展过程中扮演着非常重要的角色。它是价值创造的主体、创新发展的源泉。开公司是追求财富自由、完成自我实现的主要途径。然而,随着区块链技术的发展,公司制将走入黄昏……2000元18核36线程英特尔酷睿I9工作站处理器视频生产力本文讲述的是一颗性价比很高的英特尔工作站级别的18核36线程的处理器,新版本鲁大师,仅1颗CPU的跑分已经接近百万!一,英特尔酷睿I910980XEES版微星X29……数字货币已来,信用卡或将至他方吗?2020年虽然整个社会遭受疫情的严重影响,但也没有阻挡数字人民币的推进工作,10月份开启了数字人民币的社会公测,至今已经在十多个城市开展了多次市场测试。随着数字人民币试点地区、……血源诅咒2019年重新梳理血源诅咒的时间线大家好,我是狗哥,开个新坑。血源诅咒的中文翻译比较不太好,所以有的时候我会借用日文的原来的名词来直接引用。例如血之回响我会说成血之遗志(血遺志)。这个遗志里有许多明显的含……特朗普夺冠?是阴谋还是阳谋?大家好,我是老李。今天我们来聊聊特朗普夺冠。长假已经第四天了,大家是在旅游中还是宅在家里补充能量呢?老李我去音乐节好好体验了一把Live现场的魅力。本月……最后生还者深度解析夏之章(下),羁绊上一期,我们见到了二十年后的乔尔与二十年后的世界。乔尔与泰丝从火萤女王玛琳那里,接到了护送艾莉出城的任务期间,发现了艾莉是一个对病毒拥有者抗体的人类。她或许是一个能……
2021年中国企业级无代码开发白皮书核心摘要:近年来,企业信息化建设需求与底层技术发生翻天覆地的变化,传统软件开发模式已无法快速响应复杂多变的企业业务诉求,而IT人才贵、易流失,传统信息化建设低质低效,缺乏……蔡司影像,品阅时光年度影像旗舰vivoX70系列正式发布2021年9月9日,vivoX70系列面向全球正式发布。作为一款备受关注的高端旗舰,vivoX70系列带来设计、性能、交互的全面升级。vivo与蔡司深度合作,实现光学技术和计算……手把手教你调教一台合适的办公电脑已经参加工作或者即将参加工作的小伙伴们一定遇上过这种情况:公司要么不给配备电脑,要么就是从不知道哪弄出来一台旧主机。要是对公司派发的电脑进行全面升级,总觉得有点亏,不升级吧又影……领克06实拍1。5T耀Halo,白黑双色外观更适合年轻人!在小型SUV市场,要说到符合年轻人口味的车型,新兴品牌领克汽车旗下的领克06,算是辨识度较高的一款车型。从销量上看,8月份公布的数据在1245台,作为一款小型SUV,主要是价格……以Mate30Pro的配置,现在还值得入手吗?尽管今年华为的生活并不轻松,但仍然取得了很好的成绩。P40系列和Mate40系列均已成功发布。麒麟芯片的生产能力也在截止日期之前建成。不过,一些专业人士表示,Mate40系列将……竺延风寄语东风十四五,留住人才兴风神展岚图9月26日,在2021东风汽车品牌秋季发布会暨第六届科技创新周开幕式上,东风汽车集团有限公司(以下简称东风公司)发布了十四五规划,启动了系列战略行动。从十四五时期的目标任务、行……史上最强LCD?120Hz变速高刷即将回归!千元旗舰爆款预定据知名数码博主数码闲聊站爆料,即将发布的RedmiNote10会采用一块极高素质的LCD屏幕,而同价位竞品也用的是120Hz高刷屏,不过并不支持自适应刷新率,这让RedmiNo……人生第一辆车,要不要改人生第一辆车,那建议先好好感受他原汁原味的样子,哪怕他是一台二手车。在知道他原来的味道以后,在知道你自己的需求了以后。在双方都相对知根知底以后,再去尝试一点一点的改……雷蛇发布噬魂鲨专业版Xbox无线耳麦雷蛇为XBOX主机平台推出了噬魂鲨专业版Xbox无线耳麦,支持XBOXWIRELESS和蓝牙5。0无线连接。针对XBOXSERIESXS,通过XboxWireless享受直接、……明日主题前瞻继Facebook之后又一互联网巨头宣布进军元宇【今日导读】继Facebook之后又一互联网巨头宣布进军元宇宙海外龙头业绩大超预期国产新冠疫苗出口或在2022年迎来黄金时期销量翻番、排队拉货预制菜万亿市场风……自己的亲哥哥向你借钱炒股票,你该怎么拒绝?这是我的朋友跟我讲的,真真正正的发生在他身上的事情。我朋友是家里的老三,他有两个哥哥,二哥是喜欢炒股的,有一天,二哥来到他家,跟他讲:老三,我看上一只股票,这支股票……每物迷你筋膜枪上手体验,送人送己皆优谈起肌肉酸痛这件事,应该有不少人体验过,不论是运动健身还是不良姿势办公以及过过度饮酒等,都可能引发这类症状,肌肉酸痛这种肉体疲劳,伴随年龄的增长,触发这类症状也更加频繁,想要快……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网