网站首页 > 精选文章 正文
在正式进入Odoo系统开发前,需要对开设置好开发环境,包括:Odoo系统的安装、代码编辑器、数据库管理工具、Python调试环境等。
一、Odoo系统安装
参见前一篇文章:windows11环境下源码安装Odoo16系统
二、代码编辑器
常用的代码编辑器有VSCode(
https://code.visualstudio.com)、VSCodium(https://vscodium.com)、PyCharm(
https://www.jetbrains.com/pycharm/)或者 Sublime Text(
https://www.sublimetext.com)、Vim等。
可以选择以上熟悉的代码编辑器之一。
在代码开发环境中,配置Linter非常重要。Linter用于检查程序的文体、语句的语法和句法等语法和语义警告或错误,并即时标注出来。例如,标注声明了但没使用的多余变量、有语法错误的语句等等。Linter是程序开发的辅助工具。对于不同的开发语言,有相对应的实现。例如: Python的flake8、JavaScript 的 jshint、CSS 的 csslint、Ruby的 ruby -wc等。
Odoo 源代码尽力遵守 Python 和 JavaScript 的标准,但有些标准可以忽略。
对于Python,odoo遵循PEP8(PEP 是 Python Enhancement Proposal 的缩写,通常翻译为 Python 增强提案,
https://peps.python.org/pep-0008/ )规范,忽略以下规则:
- E501: line too long
- E301: expected 1 blank line, found 0
- E302: expected 2 blank lines, found 1
对于JavaScript,odoo遵循ESLint规范,详细参考:
https://github.com/odoo/odoo/wiki/Javascript-coding-guidelines#use-a-linter 。
三、PostgreSQL的管理员工具
PostgreSQL是一款功能强大的开源关系型数据库管理系统,被广泛应用于各种应用场景。用户可以使用命令行来管理PostgreSQL数据库。为了更方便地管理和操作PostgreSQL数据库,图形用户界面(GUI)工具成为开发人员和数据库管理员的重要选择,如 pgAdmin 或者 DBeaver。
(1) pgAdmin
pgAdmin(https://www.pgadmin.org/ )是PostgreSQL官方推荐的数据库管理工具,也是一个流行的免费GUI工具。它提供了一套完整的功能,使用户能够方便地管理和操作他们的PostgreSQL数据库。pgAdmin具有以下特点:
- 官方支持:作为PostgreSQL官方推荐的工具,pgAdmin提供了最新的PostgreSQL版本的全面支持,并与PostgreSQL数据库紧密集成。
- 多种功能:pgAdmin提供了强大的查询编辑器、表和视图管理、用户和权限管理、备份和恢复、监控和性能优化等功能,满足了用户对数据库管理的各种需求。
- Web和桌面版本:pgAdmin提供了基于Web的版本和桌面版本,用户可以根据自己的偏好选择适合自己的版本进行使用。
- 跨平台支持:pgAdmin可在多个操作系统上运行,包括Windows、macOS和Linux,使用户能够在不同的平台上使用相同的工具。
(2) Dbeaver
DBeaver是一个功能强大且流行的开源数据库管理工具,支持多种数据库系统,包括PostgreSQL。它提供了一个直观的用户界面,使用户能够轻松地连接到PostgreSQL数据库并执行各种任务。DBeaver具有以下特点:
- 跨平台支持:DBeaver可在多个操作系统上运行,包括Windows、macOS和Linux,使用户可以在不同的工作环境中无缝切换。
- 多种功能:DBeaver提供了强大的查询编辑器、数据导入和导出、数据库对象管理、事务处理和视图编辑等功能,满足了用户在数据库管理和开发方面的需求。
- 直观的界面:DBeaver的用户界面简洁直观,使用户能够轻松浏览和操作数据库对象,并提供了丰富的可定制选项。
- 插件支持:DBeaver支持插件扩展,用户可以根据自己的需求添加额外的功能和集成其他工具。
在Odoo系统环境下,建议使用Unix套接字连接来连接GUI应用程序和数据库。参考以下配置参数:
- 主机名/地址:127.0.0.1
- 端口: 5432
- 用户名: $USER
四、Python调试
当面对odoo系统代码在运行过程中出现错误,或者试图理解代码运行的机制时,简单地打印输出可以解决很多问题,但是一个合适的调试器可以节省很多时间。
调试器可以分为两类:一类是基于Python库的调试器。经典的Python库调试器有:pdb、pudb 和 ipdb。另一类是编辑器的调试器。
在下面的示例以ipdb为例,简单介绍调试器的安装、使用。
- 安装库:
pip install ipdb
- 放置触发器(断点):
import ipdb ; ipdb.set_trace()
Example
def copy(self,default=None):
import ipdb ; ipdb.set_trace()
self.ensure_one()
chosen_name=default.get('name') if default else ' '
new_name=chosen_name or _('%s (copy)') % self.name
default=dict( default or { }, name=new_name)
return super(Partner,self).copy(default)
ipdb调试命令列表:
h(elp) [command] | 如果没有提供参数,则打印可用命令的列表。如果提供了命令作为参数,则打印有关该命令的帮助信息。 |
pp expression | 使用 pprint模块对 expression的值进行漂亮的打印。 |
w(here) | 打印堆栈跟踪,最近的帧在底部。 |
d(own) | 将当前帧在堆栈跟踪中向下移动一级(到一个较新的帧)。 |
u(p) | 将当前帧在堆栈跟踪中向上移动一级(到旧帧)。 |
n(ext) | 继续执行,直到当前函数中的下一行被执行或函数返回。 |
c(ontinue) | 继续执行,只有在遇到断点时才停止。 |
s(tep) | 执行当前行。在可能的第一个机会停止(在被调用的函数中或在当前函数的下一行)。 |
q(uit) | 退出调试器。正在执行的程序被中止。 |
五、其他配置
(1)源代码管理
源代码管理(SCM) 工具是一种软件应用程序,它提供了一个集中位置来存储、管理和版本控制源代码文件和其他软件开发工件。当多个开发人员对同一文件进行更改时,它允许开发人员团队跟踪更改、协作处理功能并解决冲突,从而帮助开发人员团队在代码库上协同工作。
SCM 工具的示例包括 Git、Subversion (SVN)、Mercurial 和 Microsoft Team Foundation Server (TFS)。这些工具通常提供版本控制、分支和合并支持、问题跟踪以及与持续集成和部署 (CI/CD) 系统集成等功能。因此,使用 SCM 工具可以极大地提高软件开发过程的协作性、效率和可靠性,使其成为现代软件开发工作流的重要组成部分。
以Git为例,一些日常工作中有用的 Git 命令。
- 切换分支:
切换分支时,两个仓库(odoo 和 enterprise)必须同步,即两者都需要在同一个分支中。
cd$HOME/src/odoo
git switch 16.0
cd$HOME/src/enterprise
git switch 16.0
- 获取并变基:
cd $HOME/src/odoo
git fetch --all --prune
git rebase --autostash odoo/16.0
cd $HOME/src/enterprise
git fetch --all --prune
git rebase --autostash enterprise/16.0
猜你喜欢
- 2025-05-08 如何使用 Python 操作 Git 代码?GitPython 入门介绍
- 2025-05-08 GIT提交记录和Revert commit过程分析
- 2025-05-08 实战百万文件monorepo仓库的优化(实战百万文件monorepo仓库的优化研究)
- 2025-05-08 如何在GitHub上大显身手?(github zen)
- 2025-05-08 k8s自动化运维四之数据备份(k8s备份deploy)
- 2025-05-08 轻松部署Gemma3-27B,L20服务器+最新版vLLM高效推理
- 2025-05-08 从 Element UI 源码的构建流程来看前端 UI 库设计
- 2025-05-08 在游戏中学习git操作(五)(github游戏)
- 2025-05-08 CMake中的"包管理"模块FetchContent
- 2025-05-08 【git】 如何删除所有 tag(本地和远程)
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)