一. 华为云软件开发云与Python
1. 华为云软件开发云简介
华为云软件开发云(DevCloud)是集华为近30年研发实践,前沿研发理念,先进研发工具为一体的一站式云端DevOps平台,面向开发者提供包括项目管理,代码托管,流水线,代码检查,编译构建,测试管理,移动应用测试,部署,发布,CloudIDE,研发协同等基础功能的研发工具服务。覆盖软件开发全生命周期,支持多种主流研发场景,让软件开发更高效。
官网入口:https://www.huaweicloud.com/devcloud/
2.Python特点
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
·Python 是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
·Python 是交互式语言:这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
·Python 是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
·Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
3.Python在软件开发云的应用
应用华为云软件开发云的流水线功能可以帮助Python开发者实现一键自动化开发部署,其中需要应用到代码仓库,编译构建,发布,部署等功能。
因为Python没有编译构建的过程,所以在实际开发过程中他是可以不用编译直接发布的,但是在华为云软件开发云中云端部署需要可识别的软件包,所以在华为云软件开发云中需要对Python的程序进行打包。打包的好处是不仅可以打通编译到部署的自动化流程,避免二次手动传包影响开发效率,还可以在编译构建后自动归档到发布仓库中,对软件包进行归档管理,帮助企业完善产品构建的发布管理。下面,就让我们看看如何在华为云软件开发云中跑通一个Python项目。
二.Python流程搭建示例
1.代码仓库
华为云软件开发云提供基于Git的代码托管仓库,仓库提供可视化的管理界面,支持文件在线编辑,仓库提交记录,代码贡献度统计等多种功能,满足各类开发者的需求。Python开发者可将自己的Python代码上传到此仓库中进行代码托管。
本demo中采用华为云软件开发云的代码仓库,建立空仓后,通过Git命令,与本地仓库进行关联,完成代码同步
2.编译构建
因为Python没有编译构建的过程,所以在实际开发过程中Python工程是可以不用编译直接发布的,但是在软开云中云端部署需要可识别的软件包,所以在软开云中需要对Python的程序进行打包。
华为云软件开发云编译构建服务支持多种开发环境的构建,也支持Python类型构建egg格式软件包,本demo中为了打通部署,形成自动化研发流程,采用Other构建类型,通过shell脚本将demo程序打成.tar格式的软件包。并在打包后自动上传到发布仓库进行版本归档管理。
在构建类型中输入要执行的shell脚本命令。本样例中执行命令为将demo输出为.tar格式的软件包。
在构建执行配置中设置构建成功后将软件包上传归档到发布仓库的具体信息。
3.发布
华为云软件开发云提供4中类型的发布仓库,前两种是远程Maven私仓,用于Maven类型构建过程中第三方依赖包的的管理。第三个仓库是mirror镜像仓,镜像了一些构建过程中经常以来的中央仓到后台,提升构建速度,体现云端构建的优势。我们本次demo中应用最后一个编译构建仓库,作为生成的软件包的版本归档管理仓库。
4.部署
当代码构建打包成功并归档到发布仓库后,可以进行部署工作。部署任务一共氛围四部分,分别是主机授权,编辑模版,编写脚本和执行部署。
先将主机添加到授信机器列表中。
因为python程序在发布的时候需要执行setup.py文件,不同工程有其特殊性,故通过自定义模版和执行shell脚本两种方法相结合的方式完成自动化部署。
本demo中部署模版和shell脚本任务分配样例:
部署模版:执行目录创建,软件包拷贝,解压
Shell脚本:提取占用端口进程号,解除端口占用,定位目标文件夹,执行setup.py,运行程序文件
完成任务后执行部署任务即可。
5.流水线
当所有流程打通之后,设置对应的流水线,将所有流程添加进去,实现自动化的构建发布部署一键执行。
将需要的任务添加进流水线中,并运行流水线。
相关推荐
【标题】: "在华为软件开发云上运行Python的详细步骤" 【描述】: "本文将详细介绍如何在华为软件开发云上运用Python进行开发,并利用其自动化流程搭建Python项目,包括代码仓库、编译构建、发布和部署的全过程。" ...
它旨在帮助开发者掌握在华为鲲鹏处理器平台上进行软件开发和应用迁移的核心技能。 首先,开发语言是基础,包括C/C++、Java、Python、PHP和JavaScript等,这些语言在鲲鹏处理器上需要特别优化以实现最佳性能。C/C++...
【华为云晟腾PyCharm插件Toolkit】是一款专为Python开发者设计的高效开发工具,旨在提升在华为云上进行AI应用开发的便捷性。该插件是针对PyCharm集成开发环境(IDE)的一个扩展,它将华为云的AI服务和功能无缝地整合...
华为智慧工地-安全帽检测(python算法开发源码+项目说明).zip华为智慧工地-安全帽检测(python算法开发源码+项目说明).zip华为智慧工地-安全帽检测(python算法开发源码+项目说明).zip华为智慧工地-安全帽检测...
《2019华为软件精英挑战赛-工程编译指导书-Python-v1.01》是一份针对参赛者在华为软件精英挑战赛中的Python编程指南。这份文档旨在帮助参赛者理解如何正确编译和打包他们的Python源码,以便于在指定的Linux环境下...
总之,该编译运行环境为参赛者提供了全面的开发工具和丰富的库支持,旨在促进参赛者在软件开发尤其是AI领域的技术创新和实践能力。通过这样的环境,选手们可以专注于解决问题,而不是基础工具的配置,从而提升比赛的...
【SDK_python.zip】是一个包含与2021年华为软件挑战赛(Soft Challenge)相关的Python开发资源的压缩包。这个压缩文件提供了必要的工具和代码基础,帮助参赛者进行算法设计和实现。通过分析标签和文件名,我们可以...
crud 函数文件夹 models 数据库类文件夹 routers api路径文件夹 schemas 响应模型文件夹 utils 工具函数文件夹 database 数据库连接 ...main 运行 ...运行 py main.py ...jose pip install python-jose
总的来说,这份指导书为参赛者指明了在华为软件精英挑战赛中如何准备、运行和提交Python代码的具体要求,强调了Linux环境下的运行、SDK的使用、代码组织结构和文件命名的规范,以及源码打包和提交的流程。...
华为软件编程规范总则是华为公司为了提升软件开发质量和效率,保证代码可读性、可维护性和可扩展性而制定的一套详细的编码标准。这套规范涵盖了编程语言的选择、代码结构、命名规则、注释规范、错误处理、性能优化等...
《华为软件、硬件工程师培训手册》是一份专为初学者设计的综合教程,旨在帮助学习者掌握软件和硬件工程的基本规范和开发技能。手册涵盖了华为公司内部的技术标准和最佳实践,对于想要进入IT行业,尤其是华为相关领域...
20. **APM监控**:在华为云上部署应用后,APM监控无需手动埋点即可进行性能监控。 21. **单体应用与中间件**:单体应用同样可以利用中间件服务以增强功能和性能。 22. **容灾架构模式**:常用模式包括备份复原、...
1. **云原生的优势**:云原生(Cloud Native)是一种构建和运行应用程序的方法,它强调模块化、松耦合、快速部署和服务快速恢复。这些优势有助于提高软件开发的灵活性和效率,例如通过容器技术实现服务的快速部署和...
在现代移动应用开发中,测试自动化是不可或缺的一部分,特别是在大型项目中,为了确保软件质量,减少手动测试的工作量,提高测试效率,我们会采用自动化测试工具。本项目专注于Android应用程序的自动化测试,使用了...
这个库是为Python 3编写的,支持多种平台,可以用于开发和测试应用程序在华为云环境中的性能和稳定性。 **一、Python库的概念与作用** Python库,也称为模块或包,是一组预编写的功能,程序员可以将其导入到自己的...
《2021华为软件精英挑战赛-工程编译指导书-Python-v1.01》是一份针对参赛者的重要指南,旨在帮助他们理解和准备Python编程竞赛。这份文档详细介绍了比赛的运行环境、SDK的使用、代码打包和提交规则等方面,以确保...
3. **云原生四大应用**:包括DevOps,它强调开发和运维的协作以加速软件交付;持续交付,确保代码频繁且可靠地发布;容器,提供轻量级的运行环境;微服务,将大型应用拆分为小型、独立的服务。 4. **华为云三大...
这是一个Python编写的软件开发工具包,用于与华为云的图引擎服务进行交互。"py2.py3-none-any"表明这个库是兼容Python 2和Python 3的,可以在任何平台上运行。 描述中的"python库,解压后可用。资源全名:...
综上所述,华为云数据库GaussDB 24.1.30是一款功能强大且易于使用的数据库产品,无论是初学者还是资深开发者都能从中获益。通过深入了解其操作流程、核心特性和高级功能,可以帮助用户更好地管理和利用数据库资源,...