Odoo 8.0深入浅出开发教程(三) Odoo安装与配置

时间:2021-12-09 07:11:52

3 Odoo的安装和配置

Odoo项目的github地址是 https://github.com/odoo/odoo 。我们可以看到这个项目非常活跃,下面的内容都基于Odoo8。推荐使用github的最新版本。

常规的安装就是到 Odoo的github 地址那里下载源码,然后运行:

sudo python setup.py install 

安装之,当然Odoo框架稍微复杂一点,这么简单处理一般是不会安装成功的,下面就一些额外的操作做出说明。

首先强调第一个问题: 注意 ,在Ubuntu下,下载下的源码不要放在有中文名字的目录下面了,目前还不支持中文目录,包括桌面文件夹。

接下来我们git clone 下Odoo的源码,然后python-dev build-essential 是一般都要安装的,推荐先用apt-get安装上。

然后是pip工具要安装上去:

sudo apt-get install python-pip

然后运行

sudo pip install -U pip

来将pip升级到最新的工具。

setuptools模块应该通过pip也安装上去了,不太确定,推荐用pip安装一下,顺便也确保升级到最新的版本。

sudo pip install -U setuptools

3.1 PostgreSQL数据库

PostgreSQL是很有名的一个开源数据库,最初由加州大学伯克利分校的计算机系开发,其和sqlite3最大的区别就是其采用了client/server模型,Odoo搭建在PostgreSQL基础之上了,也继承了这种client/server模型。Odoo对PostgreSQL数据库的版本号要求不是很严格,用最新的也是可以的。

PostgreSQL数据库在ubuntu下安装是很方便的,就用apt-get简单安装即可。

sudo  apt-get install postgresql

但是这样安装之后,你需要牢记一点的是,新安装的PostgreSQL数据库还只有 postgres 这个用户有新建role(或说用户)和新建数据库的权限。你需要通过postgres这个用户来执行createuser命令才能顺利创建一个新的用户。

sudo -u postgres createuser $USER

如果某个用户不存在,那么PostgreSQL将会报错:

createdb: could not connect to database template1: FATAL:  role "wanze" does not exist

你还可以通过postgres创建一个数据库:

sudo -u postgres createdb dbname

如果你的用户名已经创建了,然后这个dbname也已经创建了,那么你就可以用psql命令行登入这个数据库来进行相关操作了。不过Odoo框架要求你这个用户还具有可以创建数据库的权限。这需要你如下这样去做:

sudo -u postgres psql postgres
ALTER USER wanze CREATEDB;

首先是用postgres用户身份登入postgres这个数据库,这个数据库放着PostgreSQL的一些配置信息。然后使用SQL语句 ALTER USER wanze CREATEDB;

这样你的用户就有了创建数据库的权限了,这块内容参考了 这个网页 。

如果系统提示你没有 .psql_history 这个文件,那么简单的touch一下即可。

3.2 Ubuntu14.04下可能缺失的软件包

这些缺失的软件包主要和一些依赖的python模块有关。也就是如果使用whell技术封装的whl包可能是不需要安装下述的这些软件包了,不过最好还是都确保安装上吧。

关于python-ldap 模块的安装参考了 这个网页 ,请确保下面两个软件包都安装了(否则会提示找不到lber.h错误):

sudo apt-get install libldap2-dev 
sudo apt-get install libsasl2-dev

关于psycopg2模块请确保下面软件包安装了:

sudo apt-get install libpq-dev

还有这几个软件包确保安装了,其中libxml2和lxml模块有关。

sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev

pillow模块需要安装下面这个软件包:

sudo apt-get install libjpeg-dev

随着系统的变动,你可能还缺少某些软件包,这个就要具体情况具体分析了。

3.3 网页显示node.js方面

按照官方文档的描述,ubuntu14.04 nodejs已经安装了,只需要通过npm安装 less 和 less-plugin-clean-css ,然后给nodejs创建一个别名链接 node 即可。

sudo apt-get install -y npm
sudo npm install -g less less-plugin-clean-css
sudo ln -s /usr/bin/nodejs /usr/bin/node

然后ubuntu小于14.04的版本还额外需要手工安装nodejs。

3.4 其他问题

  1. pydot因为googlecode不能用了,你需要用pip命令单独install pydot将其安装好。或者到 github这里下载之。
  2. 可能有其他模块因为网络问题或者其他问题下载失败,你可以考虑用pip命令来安装或者到github下载对一个模块的源码来安装之。
  3. PostgreSQL的连接配置可能会出问题,修改 /etc/postgresql/.../main/pg_hba.conf 文件,看到
# "local" is for Unix domain socket connections only
local all all peer

注意前面的postgres用户那一行绝对不要动,然后这里指本地连接,一般设置为peer,或者干脆设置为trust。

然后重启PostgreSQL服务器:

sudo service postgresql restart

3.5 通过命令行运行时的配置

在源码包目录下运行odoo.py文件即可启动Odoo,下面是一切其他参数的配置。

3.5.1 –xmlrpc-port=8888

设置网页显示的端口号,默认是8069,但可能会出于某些原因被占用了。

3.5.2 –addons-path=addons

设置插件addons的路径,默认会把源码addons文件夹加上去,但可能会出错。这里设置为源码的addons文件夹。

设置多个addons路径语法如下: --addons-path=addons, myaddons ,这可以用于加载你自己定义的某些模块。

上面两个参数配置是最常用的,我就简单设置这两个参数就可以运行Odoo了:

./odoo.py --addons-path=addons --xmlrpc-port=8888

3.5.3 数据库的一些配置

这一块推荐先不设置,就使用默认的 $USER ,然后创建数据库进入Odoo之后再配置。除非读者对PostgreSQL非常熟悉之后,再考虑更改这些配置(因为本地localhost登录还有用户权限还有连接方式上PostgreSQL里面还有很多内容,要小心啊。)。

  • –db_user=

这个参数用于指定Odoo框架数据库的user,又是你不想使用默认的 $USER ,那么可以加上这个参数。

  • –database=

这个参数用于指定具体Odoo框架使用的数据库,如上你不想使用默认的 $USER ,那么此时最好也为你想要的新用户名创建一个新的数据库。

  • –db_password=

这个参数用于指定登录某个数据库时的密码。

3.5.4 –save

保存目前你的运行命令行配置,下次就可以简单使用./odoo.py来运行了。具体配置文件是主文件夹的 .openerp_serverrc 。有兴趣的可以打开看一下。

3.6 将安装环境封装起来

我们在开发的时候,最好把所有依赖的python模块包版本号都固定起来,这可以通过pyhon的virtualenv模块来实现。安装virtualenv模块是:

sudo apt-get install python-virtualenv
sudo pip install -U virtualenv

最好如上将virtualenv升级到最新的版本。

然后我们将Odoo框架的源码加入进去,然后再安装一次。这里不赘述了。安装成功之后,我们使用pip freeeze命令来将目前的python模块包版本号环境输出出来:

pip freeze > requirements.txt

这样下次我们可以直接 pip install -r requirements.txt 来将依赖的python模块包刷一遍。但这还不够好。利用最新的wheel技术,我们可以将这些依赖的python模块包打包出来,从而可以实现不依赖网络的更快速的安装。

首先是安装wheel模块:

pip install wheel

然后:

pip wheel -r requirements.txt

注意将requirements.txt中的odoo版本删除,然后将pychart改成:

http://download.gna.org/pychart/PyChart-1.39.tar.gz#egg=PyChart

命令行执行完之后看到wheelhouse文件夹里面有一大堆whl文件,这就是所谓的pip模块安装包,其安装不依赖任何系统的工具,如果你有python环境,然后已经安装了pip工具,然后运行:

sudo pip install *.whl

就可以把所有依赖的python模块安装上去了,这个安装过程也不依赖于网络。

借助于virtualenv工具和wheel工具,你可以快速对你的开发环境进行再更新。比如你想升级你的开发环境的某个模块了,将其升级之后测试没有问题,就可以将其pip freeeze出来,然后pip wheel出来,这样就可以快速在其他机器上部署这个开发环境了。有时可能有些模块的某些版本号wheel不出来,最好将这个模块版本号倒退。

3.7 文档编译

这部分是可选的,就是编译文档。需要通过pip安装sphinx和sphinx-patchqueue,然后就可以make html 和latex了,通过latex就可以make出pdf文档了,这方便在本机上查阅资料。

pip install sphinx
sudo pip install sphinx
sudo pip install sphinx-patchqueue
make html
make latex