宜兴通达竭诚为您服务。

通达科技 - 宜兴电脑维护及IT服务外包服务商

第二章:开发环境设置
  • 上传者: Administrator
  • 上传时间:2023年09月13日 03时22分59秒
摘要:
根据预期的使用情况,有多种安装Odoo的方法。对于Odoo社区的开发人员和Odoo员工来说,首选的方法是执行源代码安装( 从源代码运行Odoo )。 准备环境 None [1] ** 首先,按照  环境设置 [2]  部分的贡献指南来准备您的环境。 重要 以下步骤仅适用于Odoo员工。提到的存储库对 ......
正文 相关文章 请喝咖啡

    根据预期的使用情况,有多种安装Odoo的方法。对于Odoo社区的开发人员和Odoo员工来说,首选的方法是执行源代码安装(从源代码运行Odoo)。

    准备环境

    首先,按照 环境设置 部分的贡献指南来准备您的环境。

     重要

    以下步骤仅适用于Odoo员工。提到的存储库对第三方不可访问。

    到目前为止,您应该已经将源代码下载到两个本地存储库中,一个是 odoo/odoo,另一个是 odoo/enterprise。这些存储库已设置为将更改推送到预定义的共享分支上的 GitHub。当您开始为代码库做出贡献时,这将非常方便,但是在本教程的范围内,我们希望避免将培训材料污染到共享存储库中。因此,让我们在第三个存储库 technical-training-sandbox 中开发您自己的模块。与前两个存储库一样,它将成为引用包含所有 Odoo 模块的目录的 addons-path 的一部分。

    1. 按照与 odoo/odoo 和 odoo/enterprise 存储库相同的过程,访问 github.com/odoo/technical-training-sandbox,然后点击 Fork 按钮,在您的账户下创建一个存储库的分支。

    2. 使用以下命令在您的机器上克隆存储库:

      $ git clone git@github.com:odoo/technical-training-sandbox.git
      
    3. 配置仓库以将更改推送到您的分支:

      $ cd technical-training-sandbox/
      $ git remote add dev git@github.com:<your_github_account>/technical-training-sandbox.git
      $ git remote set-url --push origin you_should_not_push_on_this_repository
      

    就是这样!您的环境现在已经准备好从源代码运行Odoo,并且您已经成功创建了一个用作插件目录的存储库。这将允许您将您的工作推送到GitHub。

    现在,在 technical-training-sandbox 仓库中进行一些小的更改,比如更新 README.md 文件。然后,按照贡献指南中的 进行你的第一次贡献 部分的说明,将您的更改推送到 GitHub 并创建一个 PR。这将使您能够分享您即将完成的工作并获得反馈。调整说明,使用分支 master 和仓库 technical-training-sandbox

    为了确保持续的反馈循环,我们建议在达到新的里程碑时立即推送一个新的提交,例如完成教程的一个章节。

     注解

    您的文件系统上存储库的具体位置并不重要。但是,为了简单起见,我们假设您已经将所有存储库克隆到同一个目录下。如果不是这种情况,请确保相应地调整以下命令,提供从 odoo/odoo 存储库到 odoo/technical-training-sandbox 存储库的适当相对路径。

    运行服务器

    使用 odoo-bin 启动

    一旦所有依赖项都设置好,可以通过运行 odoo-bin 来启动 Odoo,这是服务器的命令行界面。

    $ cd $HOME/src/odoo/
    $ ./odoo-bin --addons-path="addons/,../enterprise/,../technical-training-sandbox" -d rd-demo
    

    有多个 命令行参数 可用于运行服务器。在本培训中,您只需要其中一些。

    -d<database>

    将要使用的数据库。

    --addons-path<directories>

    存储模块的目录列表,用逗号分隔。这些目录将被扫描以查找模块。

    --limit-time-cpu<limit>

    限制每个请求的工作进程使用不超过<limit> CPU秒。

    --limit-time-real<limit>

    防止工作进程在处理请求时超过<limit>秒。

     小技巧

    • The --limit-time-cpu and --limit-time-real arguments can be used to prevent the worker from being killed when debugging the source code.

    • 您可能会遇到类似的错误 AttributeError: module '<MODULE_NAME>' has no attribute '<$ATTRIBUTE'>。在这种情况下,您可能需要使用 $ pip install --upgrade --force-reinstall <MODULE_NAME> 重新安装模块。
      如果此错误发生在多个模块上,您可能需要使用 $ pip install --upgrade --force-reinstall -r requirements.txt 重新安装所有的要求。
      您也可以清除Python缓存来解决此问题:
      $ cd $HOME/.local/lib/python3.8/site-packages/
      $ find -name '*.pyc' -type f -delete
      
    • 其他常用的参数包括:

      • -i:在运行服务器之前安装一些模块(逗号分隔的列表)。

      • -u:在运行服务器之前更新一些模块(逗号分隔的列表)。

    登录Odoo

    打开 http://localhost:8069/ 在你的浏览器上。我们推荐使用 Chrome <https://www.google.com/intl/en/chrome/> _, Firefox <https://www.mozilla.org/firefox/new/> _,或者任何其他带有开发工具的浏览器。

    要登录管理员用户,请使用以下凭据:

    • email: admin

    • 密码: admin

    启用开发者模式

    开发者或调试模式对于培训非常有用,因为它提供了额外的(高级)工具。在接下来的章节中, 我们将始终假设您已启用开发者模式 。

    Enable the developer mode now. Choose the method that you prefer; they are all equivalent.

     注解

    只有至少安装了一个应用程序,才能访问设置屏幕的主页面。在下一章节中,您将被引导安装自己的应用程序。

    额外工具

    有用的 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
      

    代码编辑器

    如果你在Odoo工作,你的许多同事都在使用 VSCode <https://code.visualstudio.com> _, VSCodium <https://vscodium.com> _(开源的等效品), PyCharm <https://www.jetbrains.com/pycharm/download/#section=linux> _,或者 Sublime Text <https://www.sublimetext.com> _。然而,你可以自由选择你喜欢的编辑器。

    配置您的 Linter 是非常重要的。使用 Linter 可以帮助您显示语法和语义警告或错误。Odoo 源代码尽力遵守 Python 和 JavaScript 的标准,但有些标准可以忽略。

    对于Python,我们使用PEP8,忽略这些选项:

    • E501: line too long

    • E301: expected 1 blank line, found 0

    • E302: expected 2 blank lines, found 1

    对于JavaScript,我们使用ESLint,你可以在这里找到一个 配置文件示例

    PostgreSQL的管理员工具

    你可以使用命令行来管理你的PostgreSQL数据库,就像之前演示的那样,或者使用图形用户界面应用程序,比如 pgAdmin 或者 DBeaver

    我们建议您使用Unix套接字连接来连接GUI应用程序和数据库。

    • 主机名/地址: /var/run/postgresql

    • 端口: 5432

    • 用户名: $USER

    Python调试

    当面对错误或者试图理解代码运行时,简单地打印输出可以解决很多问题,但是一个合适的调试器可以节省很多时间。

    你可以使用经典的Python库调试器(pdbpudb 或 ipdb),或者你可以使用你的编辑器的调试器。

    在下面的例子中,我们使用ipdb,但使用其他库的过程类似。

    1. 安装库:

      pip install ipdb
      
    2. 放置触发器(断点):

      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)
      

    这是一份命令列表:

    h(elp)[command]

    如果没有提供参数,则打印可用命令的列表。如果提供了命令作为参数,则打印有关该命令的帮助信息。

    ppexpression

    使用 pprint 模块对 expression 的值进行漂亮的打印。

    w(here)

    打印堆栈跟踪,最近的帧在底部。

    d(own)

    将当前帧在堆栈跟踪中向下移动一级(到一个较新的帧)。

    u(p)

    将当前帧在堆栈跟踪中向上移动一级(到旧帧)。

    n(ext)

    继续执行,直到当前函数中的下一行被执行或函数返回。

    c(ontinue)

    继续执行,只有在遇到断点时才停止。

    s(tep)

    执行当前行。在可能的第一个机会停止(在被调用的函数中或在当前函数的下一行)。

    q(uit)

    退出调试器。正在执行的程序被中止。

    现在您的服务器已经运行起来了,是时候开始 编写您自己的应用程序!

    本文章从网上收集,如有侵权请联系tderp@tderp.com删除
  • 微信扫一扫,一分也是爱:
  • 微信

服务原则及地区范围

宜兴通达网络科技有限公司,地处中国宜兴环科园内,是一家高新技术企业。公司在企业网络维护和企业信息化建设与咨询方面,有10多年经验。

我公司愿与客户一道,力求彻底解决客户问题!
我们不是在给企业提供“头痛医头、脚痛医脚”的暂时解决方案,而是在部署根本性安全与稳定服务!!
我们愿携手客户,建立企业IT规划;杜绝随意安装系统、软件等操作;力求共同维护有序、安全、稳定的网络办公环境!!!
IT服务,服务是根本,客户是上帝;我们提供快速响应、快速上门、快速排查,提供优质高效的服务!!!!

通达科技提供全国范围内的服务,服务形式包括远程协助、电话咨询、电子邮件咨询、传真咨询、问答平台的问题解决等。

宜兴地区提供上门服务:

  • 市区服务:宜城街道、城北街道(屺亭街道)、新街街道、新庄街道、环科园、渚桥开发区
  • 市郊服务:张渚镇、西渚镇、太华镇、徐舍镇、官林镇、杨巷镇、新建镇、和桥镇、高塍镇、万石镇、周铁镇、芳桥镇、丁蜀镇、湖父镇。
  • 联系电话:189-21-343434
  • 在线沟通: