odoo17基础培训1-odoo开发基础知识准备以及odoo17开发环境安装

news2024/9/24 9:26:33

odoo17基础培训

一、odoo开发基础知识准备以及odoo17开发环境安装

1、odoo是什么?

当我介绍客户使用odoo系统作为业务管理平台时,有时会被问到Odoo是什么?

简单点,可以这么说: Odoo是一套完整的系统,是一个开源框架,针对 ERP 的需求发展而来,适合定制出符合客户各种需求的ERP系统、电子商务系统、CMS、或者是网站。

由于 Odoo 的底层结构很强大,所有模块都可以根据需要进行安装和御载,所以客户能够像搭积木一样建构自己期望的系统。即使完全不安装与ERP相关的模块,仅利用 Odoo 自身的底层框架,也能构建出适合各种用途的系统,纯 B/S 架构。而这一切都是免费的,并且不受限于源代码,也不受于用户数。

Odoo 是一系列开源商业应用程序套装,此套装可以满足公司的绝大部分应用需求,例如,基本的进销存管理、采购、销售、MRP生产制造、质量管理、HR、休假管理、用车管理、IM通讯、CRM客户关系管理、电子商务、网站,财务会计、资产管理、WMS仓库管理、POS连锁、项目管理、条码、PLM等等。

https://zhuanlan.zhihu.com/p/388748782

在这里插入图片描述

2、学习odoo需要的基础知识

2.1、后端:python

编程语言排行榜:https://hellogithub.com/report/tiobe/

python特点:

1、语法简单,容易上手

2、第三方库众多

人生苦短、我用python

官网: https://www.python.org/

学习资料:https://www.runoob.com/python/python-tutorial.html

2.2、前端:html、css、JavaScript

学习资料推荐: 菜鸟教程https://www.runoob.com/

B站视频:pink老师的视频 https://www.bilibili.com/video/BV14J4114768/?spm_id_from=333.337.search-card.all.click&vd_source=42b07826977d09765ec11b9fa06715e5

建议: 先掌握概念和框架,不要太过于重视细节,对编程而言,思路更重要。

切忌: 买大块头书,深入去研究。 等到用的时候,又忘了。

好读书,不求甚解,等到真正用的时候再去深入学习。

边学边做,边做边学,这是掌握一门技术最快的方法。

3、开发工具

下面这两款都是非常优秀的集成开发工具,选择任何一个都可以。

pycharm: 专业的python开发工具,社区版够用了。缺点是本身用java开发的,比较费资源。如果机器性能不好,可能运行比较慢。

vscode: 微软开发的轻量的集成开发工具,通过插件可以支持多钟语言开发,前端开发利器。 也有很多人用来做odoo开发。相对pycharm占用资源较少。

4、开发环境搭建

4.1 下载并安装postgres数据库

下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

一般下载次新版, 我们选择15.5的版本。

安装过程中需要设置postgres用户密码,这是pg的超级用户,跟sqlserver的sa类似。

odoo不允许用超级用户postgres连接数据库,所有我们需要创建一个新的数据库账户odoo。

打开pgadmin4, 新建用户,

在这里插入图片描述

输入用户名

在这里插入图片描述

输入密码

在这里插入图片描述

赋予权限,注意要给superuser权限,因为需要使用odoo这个账户创建数据库。

在这里插入图片描述

也可以通过命令行来创建

create user odoo with password 'odoo';
alter role  odoo with superuser;

4.2 下载odoo源码

odoo版本介绍:

社区版:

企业版:

二者使用的底层框架是一样的,区别在于支持的模块不同。

最新版是odoo17,odoo17相对odoo16做了很多优化,整体体验更加丝滑,运行更加流畅!

github源码地址:https://github.com/odoo/odoo (可能需要翻墙)

gitee镜像:https://gitee.com/mirrors/odoo?_from=gitee_search

从gitee下载比较快。

4.3 下载minconda

Conda是一个开源的包管理系统和环境管理系统,用于在不同的操作系统上安装、管理和协调软件包和其依赖关系。它是Anaconda发行版的一部分,Anaconda是一个用于科学计算和数据科学的Python发行版。

以下是一些Conda的主要特点和功能:

  1. 包管理系统:Conda可以帮助您安装、更新和删除软件包。它提供了一个广泛的软件包仓库,包括Python包和其他语言的包,可以满足各种需求。

  2. 环境管理系统:Conda允许您创建和管理多个独立的环境,每个环境都可以有不同的软件包和版本。这使得在不同项目之间轻松切换和管理依赖关系成为可能。

  3. 跨平台支持:Conda可以在多个操作系统上运行,包括Windows、macOS和Linux。这使得在不同的开发环境中保持一致性变得更加容易。

  4. 依赖关系解决:Conda可以自动解决软件包之间的依赖关系,确保安装的软件包与其他软件包兼容。这减少了手动解决依赖关系的工作量。

  5. 虚拟环境:Conda允许您创建虚拟环境,这是一个独立的Python环境,其中包含特定版本的Python和所需的软件包。这使得在不同项目之间隔离和管理依赖关系变得更加容易。

总而言之,Conda是一个功能强大的包管理和环境管理工具,可以帮助您轻松地安装、管理和协调软件包和其依赖关系。它在科学计算、数据科学和机器学习等领域非常受欢迎,并被广泛用于构建和管理复杂的软件环境。

修改windows脚本运行策略:

用管理员运行powershell:

PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned
PS C:\WINDOWS\system32> conda init powershell

conda常用命令

(1)创建虚拟环境
    conda create -n env_name(环境名称) python=3.7(对应的python版本号)
(2)激活虚拟环境
    conda activate env_name(环境名称)
(3)退出虚拟环境
    deactivate env_name(环境名称)
(4)删除虚拟环境
    conda remove -n env_name(环境名称) --all
    
https://blog.csdn.net/ligous/article/details/124209700

如果不能识别conda命令,说明path环境变量有问题,设置一下环境变量即可 。

进入odoo17目录安装依赖

conda activate py11
pip install -r requirements.txt

这里有个坑 ,requirements.txt 中有一个库叫 libsass,安装它 需要C++的编译环境, 我们也不值得为了安装它去下载几个G的C++环境。这里可以下载编译好的版本。 先将requirements.txt文件中libsass那一行注释掉。然后到pypi网站https://pypi.org/project/libsass/#files下载对应平台的文件。

pip install ./libsass-0.23.0-cp38-abi3-win_amd64.whl
然后继续安装
pip install -r requirements.txt

4.4 下载并安装vscode

安装python插件

按ctrl+shift+p 输入Python 选择python解释器, 这里选择在conda中配置好的虚拟环境

添加odoo.conf, 注意这里的db_name是可以随意填的,odoo会自动检测数据库是否存在,如果不存在,odoo会自动创建并初始化它。

[options]
addons_path = addons,
db_host = 127.0.0.1
db_port = 5432
db_name = odoo17
db_user = odoo
db_password = odoo
load_language = zh_CN
log_level = info
admin_passwd =admin
http_port = 80

添加vscode启动脚本

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {"name":"Python: 当前文件","type":"python","request":"launch","program":"${file}","console":"integratedTerminal","justMyCode":true},

        {
            "name": "odoo17-run",
            "type": "python",
            "python": "${command:python.interpreterPath}",
            "request": "launch", // launch 启动程序  attach调试程序
            "program": "${workspaceFolder}/odoo-bin",
            "console": "integratedTerminal",
            "justMyCode": false,
            "args": ["-c","${workspaceFolder}/odoo.conf", "--dev=xml"]
            //,"-u","hx_hr,hx_gift,estate","--dev=xml"
        }
    ]
}

4.5 填坑

昨天讲课到最后,vscode无法识别py11的虚拟环境,解决方案如下:

1、修改path环境变量,如下图所示:

在这里插入图片描述

2、重启vscode

按ctrl+shift+p 选择python解释器,如果还没出现我们建的虚拟环境,那么点击第一项,手工输入解释器路径

在这里插入图片描述

然后点击find
在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在弹出的对话框中选择py11的路径, C:\ProgramData\miniconda3\envs\py11, 注意 C:\ProgramData 这是个隐藏目录。

在这里插入图片描述

选中python,然后点击Select Interpreter按钮就返回vscode了,然后用vscode成功运行odoo。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1380615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pycharm安装numpy库失败解决办法

一、出现错误(以matplotlib为例): 二、解决办法: 方法一(失败):PyCharm中有一个安装库的方法是:Settings>>Python Interpreter>>点击右侧的加号 第二个图 失败原因&am…

【开源】基于JAVA语言的固始鹅块销售系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固始鹅块模块2.4 鹅块订单模块2.5 评论管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 鹅块类型表3.2.2 鹅块表3.2.3 鹅块订单表3.2.4 鹅块评论表 四、系统展示五、核心代码5.…

x-cmd pkg | jless - 受 Vim 启发的命令行 JSON 查看器

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 jless 是一个命令行 JSON 查看器,设计用于读取、探索和搜索 JSON 数据。可以使用它来替代 less 、 jq 、 cat 以及您当前用于查看 JSON 文件的编辑器的任何组合。它是用 Rust 编写的,可以作为单…

确保CentOS系统中的静态HTTP服务器的数据安全

确保CentOS系统中的静态HTTP服务器的数据安全是一项重要的任务,它有助于保护网站免受未经授权的访问、数据泄露和其他安全威胁。以下是一些关键步骤和最佳实践,以确保CentOS系统中静态HTTP服务器的数据安全: 限制访问权限确保只有授权用户可…

Python爬虫---scrapy shell 调试

Scrapy shell是Scrapy提供的一个交互式shell工具,它可以帮助我们进行爬虫的开发和调试。可以使用它来测试xpath或css表达式,查看它们是如何工作的,以及它们从你试图抓取的网页中提取的数据。它允许你在编写spider时交互地测试表达式&#xff…

JFinal学生信息管理系统

JFinal学生信息管理系统 项目地址:mendianyu/StudentManage: JFinal学生信息管理系统 (github.com) 环境介绍: IDE:IDEA 2021.2.3 jdk:1.8 maven:3.6.3 项目介绍:JFinal框架实现的学生信息管理系统,完成简单的学生信…

MATLAB | 龙年大吉,使用MATLAB绘制会动的中国风神龙

hey各位好久不见,龙年到了,这期画一期配色非常中国风的龙,这个造型的龙参考了某些html绘制龙的视频,但是由于html版全网都是也不咋给代码和代码出处,因此自己写了个MATLAB版本: 可以看到还是非常酷炫的&…

Vulnhub靶机:driftingblues 3

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues3(10.0.2.19) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…

利用C语言实现输出杨辉三角的前10行

杨辉三角的特点 第一列都为1&#xff0c;对角线为1 第x行第x列为1 第几行就有几个元素 从第三行开始,第二列的元素等于第二行的第一列元素第二列元素之和(排除从第三行开始的首和尾元素) //用C语言实现打印出10行杨辉三角 #include<stdio.h>int main(){int a[10][10];//…

膜结构球形影院为观众打造观影新体验

在数字科技快速发展的当下&#xff0c;轻空间公司打破传统影院的束缚&#xff0c;领航未来娱乐体验的创新浪潮。膜结构球形影院问世&#xff0c;它不仅仅是一个娱乐场所&#xff0c;更是一场極致沉浸感的感官之旅&#xff0c;为观众带来震撼性的视听冲击。 沉浸式体验的新纪元 …

【HuggingFace Transformer库学习笔记】基础组件学习:Trainer

基础组件学习——Trainer 导入包 from transformers import AutoTokenizer, AutoModelForSequenceClassification, Trainer, TrainingArguments from datasets import load_dataset加载数据集 dataset load_dataset("csv", data_files"./ChnSentiCorp_htl_al…

【亲测可行】如何申请并登录腾讯云免费服务器

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

MySQL 基于 GTID 主从复制

GTID 定义 GTID 是 MySQL 事务标识&#xff0c;为每一个提交的事务都生成一个标识&#xff0c;并且是全局唯一的&#xff0c;这个特性是从 MySQL5.6 引进的。 组成 GTID 是由 UUID TID&#xff0c;UUID 是MySQL的唯一标识&#xff0c;每个MySQL实例之间都是不同的。TID是代表…

力扣(leetcode)第500题键盘行(Python)

500.键盘行 题目链接&#xff1a;500.键盘行 给你一个字符串数组 words &#xff0c;只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 美式键盘 中&#xff1a; 第一行由字符 “qwertyuiop” 组成。 第二行由字符 “asdfghjkl” 组成。 第三行由字…

Mybatis实现映射,一次查询和嵌套查询

1.实现映射 Mybatis的最大魅力就在于它的语句映射。实现映射一般有一下三种方法&#xff1a; 当我们在数据库的列名和java中的属性名完全相同时&#xff0c;mybatis会自动映射并将查询结果封装。 对于由多个单词组成的名字时&#xff08;例如studentgender&#xff09;&…

C++ Builder XE关于TDateTime批量加减时间TTimerPiker的设置

void __fastcall TForm3::Button3Click(TObject *Sender) { TDateTime *DT new TDateTime(); //new TDateTime类型变量 *DTTPicker1->Time; //加 1 小时: DT (double)DT 1/24; //加 1 分钟: DT (double)DT 1/(24*60); //加 1 秒钟: DT (double)DT 1/(24*60*60); …

NUS CS1101S:SICP JavaScript 描述:三、模块化、对象和状态

原文&#xff1a;3 Modularity, Objects, and State 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 变化中安宁 &#xff08;即使它在变化&#xff0c;它仍然保持不变。&#xff09; ——赫拉克利特 变化越大&#xff0c;越是相同。 ——阿方斯卡尔 前面的章节介绍了构…

基于MAP算法的Turbo译码 -- 公式推导

到此为止&#xff0c;讲完了turbo译码器的子译码器基于MAP算法的译码过程。但在实际使用中&#xff0c;很少直接使用MAP算法进行译码。而是使用改进的LOG-MAP和MAX-LOG-MAP算法进行译码&#xff0c;因此译码的整体流程&#xff0c;包括外信息的计算以及先验信息的获取等。都在后…

SSM整合(实现简单查询功能)

在名为ssm的数据库内创建表 CREATE TABLE account (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,money double DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8; 创建工程 pom.xml <?xml version"1.0" encoding&quo…

C++学习笔记——标准模板库

目录 一、简介 二、STL概述 2.1STL是什么&#xff1f; 2.2STL的优势 三、容器&#xff08;Containers&#xff09; 3.1序列式容器&#xff08;Sequence Containers&#xff09; 3.2关联式容器&#xff08;Associative Containers&#xff09; 3.3容器适配器&#xff08;…