通过bench start启动,启动后可以通过http://localhost:8000访问;

Bench是一个命令行实用程序,可以帮助您在[*nix系统](https://en.wikipedia.org/wiki/Unix-like)上安装,更新和管理用于开发和生产的Frappe/ERPNext应用程序的多个站点。

bench通过setuptools打包

如何使用setuptools打包Python项目参考
【新】使用setuptools打包Python项目_python打包setuptools_王路ylu的博客-CSDN博客

在pyproject.toml中指定了可执行命令

[project.scripts]
bench = "bench.cli:cli"

如:bench start

会执行到bench\bench\cli.py文件里的cli方法。

进入到这个分支:if cmd_from_sys in bench_command.commands:

执行bench_command()

再通过click模块的作用,执行了start创建命令行

@click.command("start", help="Start Frappe development processes")
@click.option("--no-dev", is_flag=True, default=False)
@click.option("--no-prefix",is_flag=True,default=False,help="Hide process name from bench start log",
)
@click.option("--concurrency", "-c", type=str)
@click.option("--procfile", "-p", type=str)
@click.option("--man", "-m", help="Process Manager of your choice ;)")
def start(no_dev, concurrency, procfile, no_prefix, man):

os.exec*族主要用来代替当前进程,执行新的程序,不返回值。在UNIX上,新的执行程序加载到当前进程,与调用它的进程有相同的id

def start(no_dev=False, concurrency=None, procfile=None, no_prefix=False, procman=None):program = which(procman) if procman else get_process_manager()if not program:raise Exception("No process manager found")os.environ["PYTHONUNBUFFERED"] = "true"if not no_dev:os.environ["DEV_SERVER"] = "true"command = [program, "start"]if concurrency:command.extend(["-c", concurrency])if procfile:command.extend(["-f", procfile])if no_prefix:command.extend(["--no-prefix"])os.execv(program, command)

调用os.execv(program, command),执行命令

这里program默认为honcho

def get_process_manager() -> str:for proc_man in ["honcho", "foreman", "forego"]:proc_man_path = which(proc_man)if proc_man_path:return proc_man_path

honcho是Foreman的python端口,这是一个用于管理基于procfile的应用程序的工具

在frappe-bench目录下有个Profile文件,这里面的内容就是真正执行的命令了

redis_cache: redis-server config/redis_cache.conf
redis_socketio: redis-server config/redis_socketio.conf
redis_queue: redis-server config/redis_queue.confweb: bench serve --port 8000socketio: /home/shixb/.nvm/versions/node/v14.21.3/bin/node apps/frappe/socketio.jswatch: bench watchschedule: bench schedule

frappe学习笔记相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

最新文章

  1. 学会 IDEA REST Client后,postman就可以丢掉了...
  2. c语言队列(顺序队列,循环队列,链式队列)
  3. volatile关键字到底做了什么?
  4. 「Tensorflow」TensorFlow基本使用步骤——以线性回归为练习
  5. 统计Apache或nginx日志里访问次数最多的前十个IP
  6. 课后作业-结队编程项目进度-贪吃蛇
  7. 如何在windows下安装Python(Python入门教程)
  8. 深度学习(十七)基于改进Coarse-to-fine CNN网络的人脸特征点定位
  9. qt为lineedit添加背景图片代码_Qt中事件的理解(2)
  10. html 文字如何和阴影齐平,求助!Html Div齐平无效
  11. 我的电脑缩略图模式盘符名字不见了
  12. C++对象模型——指向Data Members的指针(Pointer to Data Members)
  13. ZipEntry压缩时中文文件名乱码解决办法
  14. matlab产生过渡矩阵,浅谈向量空间和矩阵
  15. 20180511-面试感悟-要知其然还要知其所以然
  16. 酷我音乐解析API,支持搜索、歌单、单曲、专辑、MV解析、多音质切换、图片大小切换
  17. Eclipse下载以及旧版本下载
  18. 元搜索推荐:比比猫!(马丁编辑)
  19. facebook 推特. Line 领英 分享功能 带图标(最全,实测可用)
  20. VUE 保证输入框无法输入半角数字以外的字符

热门文章

  1. python简易在线与离线小说爬虫
  2. HTML和CSS中的像素的三个单位
  3. Camtasia Studio录屏软件使用
  4. [年中总结]一个骄傲而又自卑的人的内心独白
  5. java 流计算_JAVA流式计算
  6. Vscode底部状态栏消失
  7. kali 如何设置任务栏在底部
  8. laradock安装篇
  9. 苹果手机天气温度显示80度_【津城天气】本周后期静稳天气再度建立,关注雾和霾影响!|冷空气|多云|弱冷空气...
  10. 封装HEVC(H.265)码流为MP4