当前位置: 首页 > news >正文

做网站需要什么服务器配置一站式网站建设 t云

做网站需要什么服务器配置,一站式网站建设 t云,建站公司 转型经验,昆明网站建设博滇hb命令可以通过python pip包管理器进行安装#xff0c;应该是OpenHarmony Build的缩写#xff0c;在python包名称是ohos-build。hb作为编译构建子系统提供的命令行#xff0c;用于编译构建产品、芯片厂商组件或者单个组件。本文#xff0c;我们来学习hb的源码。 1、hb的安…hb命令可以通过python pip包管理器进行安装应该是OpenHarmony Build的缩写在python包名称是ohos-build。hb作为编译构建子系统提供的命令行用于编译构建产品、芯片厂商组件或者单个组件。本文我们来学习hb的源码。 1、hb的安装、卸载与简单介绍 在源码根目录下执行下述命令可以进行安装。 python3 -m pip install --user build/lite执行hb -h有相关帮助信息有打印信息即表示安装成功 usage: -c [-h] [-v] {build,set,env,clean,tool} ...OHOS Build System version 0.4.6positional arguments:{build,set,env,clean,tool}build Build source codeset OHOS build settingsenv Show OHOS build envclean Clean outputtool Call the gn command through the hb tooloptional arguments:-h, --help show this help message and exit-v, --version show programs version number and exit需要注意的是需要在OpenHarmony的源代码目录下才能执行hb命令否则会提示hb_error: Please call hb utilities inside source root directory。后文源码分析时会讲述为啥要在源码目录下才能执行该hb。 卸载方法执行下述命令即可 python3 -m pip uninstall ohos-build另外需要了解的一个比较好用的命令如下可以查看安装的python包的信息 python3 -m pip show ohos-build执行后输出如下信息。比较关键的是可以知道hb命令对应源文件的安装位置在...lib/python3.8/site-packages。 。hb命令工具的位置可以通过which hb来查看。 zhushangyuanDESKTOP-RPE9R4O:~$ python3 -m pip show ohos-build Name: ohos-build Version: 0.4.6 Summary: OHOS build command line tool Home-page: https://gitee.com/openharmony/build_lite Author: Huawei Author-email: contactopenharmony.io License: Apache 2.0 Location: /home/zhushangyuan/.local/lib/python3.8/site-packages Requires: kconfiglib, prompt-toolkit, PyYAML, requests Required-by:在文件夹...lib/python3.8/site-packages/hb有3个文件__init__.py是空文件表示python模块__main__.py是执行入口文件__entry__.py事实上并没有使用到。这3个文件和目录build/lite/hb下的文件是一模一样的。 zhushangyuanDESKTOP-RPE9R4O:~$ ll /home/zhushangyuan/.local/lib/python3.8/site-packages/hb/ total 20 drwxr-xr-x 3 zhushangyuan zhushangyuan 4096 Oct 25 20:36 ./ drwx------ 33 zhushangyuan zhushangyuan 4096 Oct 25 20:36 ../ -rw-r--r-- 1 zhushangyuan zhushangyuan 3629 Oct 25 20:56 __entry__.py -rw-r--r-- 1 zhushangyuan zhushangyuan 0 Oct 25 20:36 __init__.py -rw-r--r-- 1 zhushangyuan zhushangyuan 2204 Oct 25 20:36 __main__.py2、hb源码分析 通过which hb来查看hb命令工具的位置我的环境上位置为~/.local/bin/hb该文件是通过pip安装的其实是个python文件。我们来查看其文件内容。⑴处导入的main函数来自...lib/python3.8/site-packages/hb/__main__.py。⑵处sys.argv[0]指的是执行的程序名称这里等于hb该语句表示以-script.pyw或者.exe结尾的部分去除例如假设sys.argv[0]为test-script.pyw则替换后的sys.argv[0]为test。使用pip安装的包通常都是这样的写法。 zhushangyuanDESKTOP-RPE9R4O:~/openharmony$ cat ~/.local/bin/hb#!/usr/bin/python3# -*- coding: utf-8 -*-import reimport sys ⑴ from hb.__main__ import mainif __name__ __main__: ⑵ sys.argv[0] re.sub(r(-script\.pyw|\.exe)?$, , sys.argv[0])sys.exit(main())接下来我们来分析下源文件...lib/python3.8/site-packages/hb/__main__.py。 zhushangyuanDESKTOP-RPE9R4O:~/openharmony$ cat /home/zhushangyuan/.local/lib/python3.8/site-packages/hb/__main__.py #!/usr/bin/env python3 # -*- coding: utf-8 -*-# # Copyright (c) 2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the License); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an AS IS BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #import os import sysVERSION 0.4.6 # execv execution fragment EXECV_FRAGMENT import sys import importlibsys.path.append(sys.argv.pop()) entry importlib.import_module(__entry__) sys.exit(entry.main()) def find_top():cur_dir os.getcwd()while cur_dir ! /:hb_internal os.path.join(cur_dir, build/lite/hb_internal)if os.path.exists(hb_internal):return cur_dircur_dir os.path.dirname(cur_dir)raise Exception(Please call hb utilities inside source root directory)def search(findir, target):for root, dirs, files in os.walk(findir):if target in files:return rootdef main():try:topdir find_top()except Exception as ex:return print(hb_error: Please call hb utilities inside source root directory)python_base_dir os.path.join(topdir, prebuilts/python)if os.path.exists(python_base_dir):python_dir search(python_base_dir, python3)python_executable os.path.join(python_dir, python3)lite_dir os.path.join(topdir, build/lite)hb_dir search(lite_dir, __entry__.py)param_list [python3, -c, EXECV_FRAGMENT]for arg in sys.argv[1:]:param_list.append(arg)param_list.append(hb_dir)os.environ[PATH] python_dir : os.getenv(PATH)os.execv(python_executable, param_list)else:print(please execute build/prebuilts_download.sh)if __name__ __main__:sys.exit(main())2.1、hb/main.py 动态执行python代码片段EXECV_FRAGMENT python -c命令可以直接在命令行中调用python代码, 实际上-c就是command的意思就是python -c可以在命令行中执行python代码, 跟把代码放置在.py文件中然后运行这个文件是一样的效果。 __main__.py文件中会动态执行python代码片段如下解释下⑴处的代码。当我们导入一个模块时import XXX默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块如果都搜索不到则会报错。 我们的搜索路径存放在sys模块中的path中sys.path是当前路径的一个列表。[即默认路径可以通过sys.path来打印查看]。当我们要添加自己的引用模块搜索目录时可以通过list的append方法。sys.argv.pop()表示参数列表中的最后一项指的是openharmony\build\lite\hb\目录下文会详细解释。 ⑵处动态导入模块对象entry指的是openharmony\build\lite\hb\__entry__.py。所以我们只使用到了openharmony\build\lite\hb\__entry__.py而不是使用python3.8/site-packages/hb/__entry__.py.py。 EXECV_FRAGMENT import sysimport importlib⑴ sys.path.append(sys.argv.pop()) ⑵ entry importlib.import_module(__entry__)sys.exit(entry.main())2.2、hb/main.py find_top()函数 find_top()函数用于获取OpenHarmony源代码根目录。⑴处先获取当前工作目录hb命令在哪个目录下执行就是当前的工作目录。⑵处开始while循环结束条件是遍历到系统根目录或者return返回。⑶处判断是否存在目录’build/lite/hb_internal’如果存在即可获得OpenHarmony源码根目录。如果不存在则执行⑷获取上一级目录继续循环。遍历的目录不存在’build/lite/hb_internal’目录则抛出异常。从这些源码可知hb不能在非OpenHarmony源代码目录下执行但又可以在OpenHarmony源码目录下的任何一个目录执行。 def find_top(): ⑴ cur_dir os.getcwd() ⑵ while cur_dir ! /:hb_internal os.path.join(cur_dir, build/lite/hb_internal) ⑶ if os.path.exists(hb_internal):return cur_dir ⑷ cur_dir os.path.dirname(cur_dir)raise Exception(Please call hb utilities inside source root directory)2.3、hb/main.py search()函数 search()函数从指定的目录下查询是否存在指定的文件如果存在则返回包含指定文件的目录路径。代码如下这代码也容易被挑战。对于不存在指定文件的情况下就没有return语句这样代码不规范。 def search(findir, target):for root, dirs, files in os.walk(findir):if target in files:return root2.4、hb/main.py main()函数 接下来我们来看下main()函数。首先调用find_top()函数获得OpenHarmony源码根目录。⑴处判断是否存在文件’prebuilts/python’如果不存在则打印告知开发者需要please execute build/prebuilts_download.sh来完成环境准备。⑵处开始获取4个变量的值如下表 变量值说明python_diropenharmony/prebuilts/python/linux-x86/3.9.2/bin包含python3执行文件的目录python_executableopenharmony/prebuilts/python/linux-x86/3.9.2/bin/python3python3执行文件路径lite_diropenharmony/build/litebuild lite目录hb_diropenharmony/build/lite/hbentry.py所在的目录 ⑶处封装要参数列表要动态执行的脚本EXECV_FRAGMENT已经在前文解释。⑷处把命令行执行hb命令时传入的参数添加到param_list变量⑸处最后添加的参数是__entry__.py所在的目录。在解释动态执行python代码片段EXECV_FRAGMENT时提到的sys.argv.pop()就是刚刚添加的这个目录。接下来⑹处的代码设置环境变量然后调用函数os.execv来执行。后文再详细分析__entry__.py。 def main():try:topdir find_top()except Exception as ex:return print(hb_error: Please call hb utilities inside source root directory)python_base_dir os.path.join(topdir, prebuilts/python) ⑴ if os.path.exists(python_base_dir): ⑵ python_dir search(python_base_dir, python3)python_executable os.path.join(python_dir, python3)lite_dir os.path.join(topdir, build/lite)hb_dir search(lite_dir, __entry__.py) ⑶ param_list [python3, -c, EXECV_FRAGMENT] ⑷ for arg in sys.argv[1:]:param_list.append(arg) ⑸ param_list.append(hb_dir) ⑹ os.environ[PATH] python_dir : os.getenv(PATH)os.execv(python_executable, param_list)else:print(please execute build/prebuilts_download.sh)4、小结 本文介绍了build lite 轻量级编译构建系统hb命令的源码主要分析了__main__.py文件。 如果大家想更加深入的学习 OpenHarmony鸿蒙南向 开发的全栈内容不妨可以参考以下相关学习文档进行学习助你快速提升自己 OpenHarmony 开发环境搭建https://qr18.cn/CgxrRy 《OpenHarmony源码解析》https://qr18.cn/CgxrRy 搭建开发环境Windows 开发环境的搭建Ubuntu 开发环境搭建Linux 与 Windows 之间的文件共享…… 系统架构分析https://qr18.cn/CgxrRy 构建子系统启动流程子系统分布式任务调度子系统分布式通信子系统驱动子系统…… OpenHarmony 设备开发学习手册https://qr18.cn/CgxrRy OpenHarmony面试题内含参考答案https://qr18.cn/CgxrRy 写在最后 如果你觉得这篇内容对你还蛮有帮助我想邀请你帮我三个小忙点赞转发有你们的 『点赞和评论』才是我创造的动力。关注小编同时可以期待后续文章ing不定期分享原创知识。想要获取更多完整鸿蒙最新学习资源请移步前往小编https://qr21.cn/FV7h05
文章转载自:
http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn
http://www.morning.yongkangyiyuan-pfk.com.gov.cn.yongkangyiyuan-pfk.com
http://www.morning.dfwkn.cn.gov.cn.dfwkn.cn
http://www.morning.mdjzydr.com.gov.cn.mdjzydr.com
http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn
http://www.morning.zdkzj.cn.gov.cn.zdkzj.cn
http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn
http://www.morning.msbpb.cn.gov.cn.msbpb.cn
http://www.morning.ltpmy.cn.gov.cn.ltpmy.cn
http://www.morning.qpntn.cn.gov.cn.qpntn.cn
http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn
http://www.morning.pkggl.cn.gov.cn.pkggl.cn
http://www.morning.frfpx.cn.gov.cn.frfpx.cn
http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn
http://www.morning.yrnll.cn.gov.cn.yrnll.cn
http://www.morning.plqsc.cn.gov.cn.plqsc.cn
http://www.morning.kpxky.cn.gov.cn.kpxky.cn
http://www.morning.tsycr.cn.gov.cn.tsycr.cn
http://www.morning.wpspf.cn.gov.cn.wpspf.cn
http://www.morning.rmfh.cn.gov.cn.rmfh.cn
http://www.morning.wkcl.cn.gov.cn.wkcl.cn
http://www.morning.fjscr.cn.gov.cn.fjscr.cn
http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn
http://www.morning.nnpfz.cn.gov.cn.nnpfz.cn
http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn
http://www.morning.mhxlb.cn.gov.cn.mhxlb.cn
http://www.morning.gcftl.cn.gov.cn.gcftl.cn
http://www.morning.nzqqd.cn.gov.cn.nzqqd.cn
http://www.morning.lddpj.cn.gov.cn.lddpj.cn
http://www.morning.qrdkk.cn.gov.cn.qrdkk.cn
http://www.morning.dbsch.cn.gov.cn.dbsch.cn
http://www.morning.hmqmm.cn.gov.cn.hmqmm.cn
http://www.morning.fcwb.cn.gov.cn.fcwb.cn
http://www.morning.fhcwm.cn.gov.cn.fhcwm.cn
http://www.morning.bscsp.cn.gov.cn.bscsp.cn
http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn
http://www.morning.qytyt.cn.gov.cn.qytyt.cn
http://www.morning.nwmwp.cn.gov.cn.nwmwp.cn
http://www.morning.mqmmc.cn.gov.cn.mqmmc.cn
http://www.morning.llllcc.com.gov.cn.llllcc.com
http://www.morning.sxwfx.cn.gov.cn.sxwfx.cn
http://www.morning.spsqr.cn.gov.cn.spsqr.cn
http://www.morning.clbsd.cn.gov.cn.clbsd.cn
http://www.morning.bsghk.cn.gov.cn.bsghk.cn
http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn
http://www.morning.ywqw.cn.gov.cn.ywqw.cn
http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn
http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn
http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn
http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn
http://www.morning.jhwqp.cn.gov.cn.jhwqp.cn
http://www.morning.slzkq.cn.gov.cn.slzkq.cn
http://www.morning.klltg.cn.gov.cn.klltg.cn
http://www.morning.pkpqh.cn.gov.cn.pkpqh.cn
http://www.morning.xplng.cn.gov.cn.xplng.cn
http://www.morning.tgydf.cn.gov.cn.tgydf.cn
http://www.morning.xblrq.cn.gov.cn.xblrq.cn
http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn
http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn
http://www.morning.qbzdj.cn.gov.cn.qbzdj.cn
http://www.morning.fxxmj.cn.gov.cn.fxxmj.cn
http://www.morning.rqfkh.cn.gov.cn.rqfkh.cn
http://www.morning.buyid.com.cn.gov.cn.buyid.com.cn
http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn
http://www.morning.qttft.cn.gov.cn.qttft.cn
http://www.morning.ssjee.cn.gov.cn.ssjee.cn
http://www.morning.cniedu.com.gov.cn.cniedu.com
http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn
http://www.morning.hgscb.cn.gov.cn.hgscb.cn
http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn
http://www.morning.tfpqd.cn.gov.cn.tfpqd.cn
http://www.morning.gcfrt.cn.gov.cn.gcfrt.cn
http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn
http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn
http://www.morning.jmmzt.cn.gov.cn.jmmzt.cn
http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn
http://www.morning.pfkrw.cn.gov.cn.pfkrw.cn
http://www.morning.hpmzs.cn.gov.cn.hpmzs.cn
http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn
http://www.morning.tkqzr.cn.gov.cn.tkqzr.cn
http://www.tj-hxxt.cn/news/234747.html

相关文章:

  • 厦门网站建设费用上海网站建设高端
  • 江苏中益建设官方网站移动吉生活app下载
  • 网站搜索怎么做phpwordpress lazy load
  • 什么网站找厂做袜子嘉兴公司的网站设计
  • 克拉玛依 网站建设长沙做黄叶和网站的公司有哪些
  • 上海网站建设服务多少钱网站建设与维护专业实训室
  • asp.net 网站开发 实战简答网站建设流程有哪些
  • 教资报名网站设置高端网站建设jm3q
  • 如何做情趣网站哪些网站做物流推广比较好
  • 搜集10个优秀网站网页是怎么制作的
  • 怎样做平台网站网站前台开发由什么做的
  • 广东手机版建站系统开发没有做网站地图影响大吗吗
  • 长沙seo网站建设wordpress游客评论游客
  • 网站建设和推广的完整话术网站改版方案案例
  • 深圳做分销网站的公司制作视频的app有哪些
  • 自己做的网站能放到阿里云上注册网址域名
  • 做阿里巴巴网站需要多少钱深圳精准网络营销推广
  • 如何做二级域名网站公众号开发工具
  • 情侣博客网站模板下载网站网站怎么做的
  • 石家庄企业建站沙田镇网站仿做
  • 手机网站建设专业服务公司一般使用的分辨率的显示密度是多少dpi )
  • 网站开发课题研究背景网站建设调查报告
  • 安陆建设局网站中企动力网站建设精品案例
  • 建购物网站需要多少钱wordpress关闭更新
  • 同一个域名网站做301网络运营与维护主要做什么
  • 做讲课ppt的网站网站的建设费计入无形资产吗
  • 宝塔建站wordpress做网站 什么后缀
  • 在阿里巴巴做网站高校招生网站模板
  • 手表网站哪家好个人网站备案信息填写
  • 找人做网站 自己购买服务器5g空间大吗企业网站