Debug Odoo 10.0 using Pycharm in Windows

Hello everyone
This article well help you step by step to debug odoo-10.0 in Windows using PycharmProjects.

For the environment, I am using Windows 7 and Pycharm, version 2016.3 in 64 bit

This article is divided into three parts:
Part 1: describes how to install required packages and source code
Part 2: show how to configure PostgresSQL and Odoo
Part 3: gives you the solution of some errors occurred while my installation process

 

I.Install required packages and source code:

1.1-Install Pycharm:

https://www.jetbrains.com/pycharm/download/#section=windows

1.2-Install Python 2.7:

https://www.python.org/ftp/python/2.7.12/python-2.7.12.amd64.msi

1.3-Install odoo 10:

First, go to:

  https://github.com/odoo/odoo/archive/10.0.zip 

to download the field “odoo-10.zip”, after that extract the content of “odoo-10.zip”.

1.4- Run Pycharm, and open the odoo-10 ( folder extracted earlier )

 

odoo-server-in-PyCharm-Project

1.5-Install Microsoft Visual C++ Compiler for Python 2.7 if you don’t have one:

https://www.microsoft.com/en-us/download/details.aspx?id=44266

1.6-Install required packages:

For this step you could either:

Install the requirements.txt once you open PycharmProjects, it will appear a message asking you to install “requirements.txt

Go to “cmd” command line and execute these commands:

> cd C:\ python27 (here you specify the location of your field “python27”)
> python -m pip install -r C:\Users\PycharmProjects\Odoo-10.0\requirements.txt  (here you specify the location of your field “Odoo-10.0”)

NB: some of this required packages will not be installed, to do so I ask you to refer to the part 3 of this article.

1.7-Install pywin32 (This installation is optional) :

While installing the required packages missing, you may have some errors dealing with pywin32. So all you need to do is to install it:

link to the pywin32.exe

1.8-Install pip:

-Go to:

https://pip.pypa.io/en/latest/installing/

download get-pip.py

-Go to “cmd” command line and execute these commands:

> cd C:\python27(here you specify the location of your folder “python27”)
> Python get-pip.py

II.Install PostgreSQL and configure Odoo:

2.1- install and download PostgresSQL for Windows:

Download PostgreSQL from official website

NB : You should remember the password of “postgres” role that you set when installing PostgreSQL.you will need it in the next step.

2.2- Create a new role with superuser privilege for Odoo application:

In my case, I create a superuser “lenovo” and set its password as “lenovo”.
To do so, Go to “cmd” command line and execute these commands:

> cd "C:\Program Files\PostgreSQL\9.4\bin"
> createuser.exe --createdb --username postgres --no-createrole --pwprompt lenovo

2.3- configure Odoo:

To configure Odoo, you can refer to the file odoo-server.conf:

This is the password that allows database operations:

; admin_passwd = admin
db_host = localhost
db_port = 5432
db_user = lenovo
db_password =lenovo
addons_path = C:\Users\PycharmProjects\odoo10\addons

If you want to change your port, you can add this line to that file: xmlrpc_port = 8070

III.Errors and solutions:

3.1-You may have an error telling that you don’t have “Setuptools”, so you can install it.

To do so, go to “cmd” command line and execute these commands:

> cd C:\python27
> python -m pip install --upgrade setuptools

3.2- Install wheel & lxml-3.6.4-cp27-cp27m-win32.whl:

Go to “cmd” command line and execute these commands:

> cd C:\python27
> python -m pip install wheel

To install lxml-3.6.4-cp27-cp27m-win32.whl, go here

Then, go to “cmd” command line and execute this commands:

> cd C:\python27
> python -m pip install lxml-3.6.4-cp27-cp27m-win32.wh

(here you should choose the file that go with your environment)

3.3- Install ebaysdk:

Go to:
 https://pypi.python.org/pypi/ofxparse

(here you should choose the file that go with your environment)

Then, go to “cmd” command line and execute these commands:

> cd C:\python27
> python -m pip install "C:\path to\tar\ofxparse-0.15.tar.gz "

3.4- Install psycopg2 .exe:

http://www.stickpeople.com/projects/python/win-psycopg/

3.5- once you launch your odoo server using your navigator: localhost: 8069, you may have this error: « could not execute command lessc »

to resolve that problem, you follow those steps:

  • – Install nodejs : https://nodejs.org/en/
  • – go to “cmd” command line and execute this commands:
> cd C:\Program Files\nodejs (here you specify the location of your field “nosejs”) 
> npm install -g less less-plugin-clean-css

3.6- how to use wkhtmltopdf to print a PDF:

  • -Install wkhtmltopdf : http://wkhtmltopdf.org/downloads.html  (Windows (MSVC 2013))
  • -In system variable on windows add in PATH: C:\Program Files\wkhtmltopdf\bin
  • -Restart the OS(systeme windows)


Install Odoo 9 on Ubuntu 14.04

Hello everyone

Thanks to a script writing by André Schenkels, you can install Odoo 9 on Ubuntu easily just by runing the script and following the steps.

NB: You can create/run the script from any place/directory you want, for example right under /opt/

Open up an Ubuntu terminal and #sudo cd to the directory where you’d like to keep and run the script. for /opt case, we will do :

#sudo cd /opt

Then we create the file odoo_install.sh

#sudo nano odoo_install.sh

Next fill the file with this content :

#!/bin/bash
################################################################################
# Script for Installation: ODOO 9.0 Community server on Ubuntu 14.04 LTS
# Author: André Schenkels, ICTSTUDIO 2015
#-------------------------------------------------------------------------------
#
# This script will install ODOO Server on
# clean Ubuntu 14.04 Server
#-------------------------------------------------------------------------------
# USAGE:
#
# odoo-install
#
# EXAMPLE:
# ./odoo-install
#
################################################################################

OE_USER="odoo"
OE_HOME="/opt/$OE_USER"
OE_HOME_EXT="/opt/$OE_USER/$OE_USER-server"

#Enter version for checkout "9.0" for version 9.0,"8.0" for version 8.0, "7.0 (version 7), "master" for trunk
OE_VERSION="9.0"

#set the superadmin password
OE_SUPERADMIN="superadminpassword"
OE_CONFIG="$OE_USER-server"

#--------------------------------------------------
# Update Server
#--------------------------------------------------
echo -e "\n---- Update Server ----"
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y locales

#--------------------------------------------------
# Install PostgreSQL Server
#--------------------------------------------------
sudo export LANGUAGE=en_US.UTF-8
sudo export LANG=en_US.UTF-8
sudo export LC_ALL=en_US.UTF-8
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

echo -e "\n---- Install PostgreSQL Server ----"
sudo apt-get install postgresql -y

echo -e "\n---- PostgreSQL $PG_VERSION Settings  ----"
sudo sed -i s/"#listen_addresses = 'localhost'"/"listen_addresses = '*'"/g /etc/postgresql/9.4/main/postgresql.conf

echo -e "\n---- Creating the ODOO PostgreSQL User  ----"
sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true

sudo service postgresql restart

#--------------------------------------------------
# System Settings
#--------------------------------------------------

echo -e "\n---- Create ODOO system user ----"
sudo adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER

echo -e "\n---- Create Log directory ----"
sudo mkdir /var/log/$OE_USER
sudo chown $OE_USER:$OE_USER /var/log/$OE_USER

#--------------------------------------------------
# Install Basic Dependencies
#--------------------------------------------------
echo -e "\n---- Install tool packages ----"
sudo apt-get install wget git python-pip python-imaging python-setuptools python-dev libxslt-dev libxml2-dev libldap2-dev libsasl2-dev node-less postgresql-server-dev-all -y

echo -e "\n---- Install wkhtml and place on correct place for ODOO 8 ----"
sudo wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo apt-get install -f -y
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin

#--------------------------------------------------
# Install ODOO
#--------------------------------------------------

echo -e "\n==== Download ODOO Server ===="
cd $OE_HOME
sudo su $OE_USER -c "git clone --depth 1 --single-branch --branch $OE_VERSION https://www.github.com/odoo/odoo $OE_HOME_EXT/"
cd -

echo -e "\n---- Create custom module directory ----"
sudo su $OE_USER -c "mkdir $OE_HOME/custom"
sudo su $OE_USER -c "mkdir $OE_HOME/custom/addons"

echo -e "\n---- Setting permissions on home folder ----"
sudo chown -R $OE_USER:$OE_USER $OE_HOME/*

#--------------------------------------------------
# Install Dependencies
#--------------------------------------------------
echo -e "\n---- Install tool packages ----"
sudo pip install -r $OE_HOME_EXT/requirements.txt

#echo -e "\n---- Install python packages ----"
sudo easy_install pyPdf vatnumber pydot psycogreen suds ofxparse


#--------------------------------------------------
# Configure ODOO
#--------------------------------------------------
echo -e "* Create server config file"
sudo cp $OE_HOME_EXT/debian/openerp-server.conf /etc/$OE_CONFIG.conf
sudo chown $OE_USER:$OE_USER /etc/$OE_CONFIG.conf
sudo chmod 640 /etc/$OE_CONFIG.conf

echo -e "* Change server config file"
echo -e "** Remove unwanted lines"
sudo sed -i "/db_user/d" /etc/$OE_CONFIG.conf
sudo sed -i "/admin_passwd/d" /etc/$OE_CONFIG.conf
sudo sed -i "/addons_path/d" /etc/$OE_CONFIG.conf

echo -e "** Add correct lines"
sudo su root -c "echo 'db_user = $OE_USER' >> /etc/$OE_CONFIG.conf"
sudo su root -c "echo 'admin_passwd = $OE_SUPERADMIN' >> /etc/$OE_CONFIG.conf"
sudo su root -c "echo 'logfile = /var/log/$OE_USER/$OE_CONFIG$1.log' >> /etc/$OE_CONFIG.conf"
sudo su root -c "echo 'addons_path=$OE_HOME_EXT/addons,$OE_HOME/custom/addons' >> /etc/$OE_CONFIG.conf"

echo -e "* Create startup file"
sudo su root -c "echo '#!/bin/sh' >> $OE_HOME_EXT/start.sh"
sudo su root -c "echo 'sudo -u $OE_USER $OE_HOME_EXT/openerp-server --config=/etc/$OE_CONFIG.conf' >> $OE_HOME_EXT/start.sh"
sudo chmod 755 $OE_HOME_EXT/start.sh

#--------------------------------------------------
# Adding ODOO as a deamon (initscript)
#--------------------------------------------------

echo -e "* Create init file"
echo '#!/bin/sh' >> ~/$OE_CONFIG
echo '### BEGIN INIT INFO' >> ~/$OE_CONFIG
echo "# Provides: $OE_CONFIG" >> ~/$OE_CONFIG
echo '# Required-Start: $remote_fs $syslog' >> ~/$OE_CONFIG
echo '# Required-Stop: $remote_fs $syslog' >> ~/$OE_CONFIG
echo '# Should-Start: $network' >> ~/$OE_CONFIG
echo '# Should-Stop: $network' >> ~/$OE_CONFIG
echo '# Default-Start: 2 3 4 5' >> ~/$OE_CONFIG
echo '# Default-Stop: 0 1 6' >> ~/$OE_CONFIG
echo '# Short-Description: Enterprise Business Applications' >> ~/$OE_CONFIG
echo '# Description: ODOO Business Applications' >> ~/$OE_CONFIG
echo '### END INIT INFO' >> ~/$OE_CONFIG
echo 'PATH=/bin:/sbin:/usr/bin' >> ~/$OE_CONFIG
echo "DAEMON=$OE_HOME_EXT/openerp-server" >> ~/$OE_CONFIG
echo "NAME=$OE_CONFIG" >> ~/$OE_CONFIG
echo "DESC=$OE_CONFIG" >> ~/$OE_CONFIG
echo '' >> ~/$OE_CONFIG
echo '# Specify the user name (Default: odoo).' >> ~/$OE_CONFIG
echo "USER=$OE_USER" >> ~/$OE_CONFIG
echo '' >> ~/$OE_CONFIG
echo '# Specify an alternate config file (Default: /etc/openerp-server.conf).' >> ~/$OE_CONFIG
echo "CONFIGFILE=\"/etc/$OE_CONFIG.conf\"" >> ~/$OE_CONFIG
echo '' >> ~/$OE_CONFIG
echo '# pidfile' >> ~/$OE_CONFIG
echo 'PIDFILE=/var/run/$NAME.pid' >> ~/$OE_CONFIG
echo '' >> ~/$OE_CONFIG
echo '# Additional options that are passed to the Daemon.' >> ~/$OE_CONFIG
echo 'DAEMON_OPTS="-c $CONFIGFILE"' >> ~/$OE_CONFIG
echo '[ -x $DAEMON ] || exit 0' >> ~/$OE_CONFIG
echo '[ -f $CONFIGFILE ] || exit 0' >> ~/$OE_CONFIG
echo 'checkpid() {' >> ~/$OE_CONFIG
echo '[ -f $PIDFILE ] || return 1' >> ~/$OE_CONFIG
echo 'pid=`cat $PIDFILE`' >> ~/$OE_CONFIG
echo '[ -d /proc/$pid ] && return 0' >> ~/$OE_CONFIG
echo 'return 1' >> ~/$OE_CONFIG
echo '}' >> ~/$OE_CONFIG
echo '' >> ~/$OE_CONFIG
echo 'case "${1}" in' >> ~/$OE_CONFIG
echo 'start)' >> ~/$OE_CONFIG
echo 'echo -n "Starting ${DESC}: "' >> ~/$OE_CONFIG
echo 'start-stop-daemon --start --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG
echo '--chuid ${USER} --background --make-pidfile \' >> ~/$OE_CONFIG
echo '--exec ${DAEMON} -- ${DAEMON_OPTS}' >> ~/$OE_CONFIG
echo 'echo "${NAME}."' >> ~/$OE_CONFIG
echo ';;' >> ~/$OE_CONFIG
echo 'stop)' >> ~/$OE_CONFIG
echo 'echo -n "Stopping ${DESC}: "' >> ~/$OE_CONFIG
echo 'start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG
echo '--oknodo' >> ~/$OE_CONFIG
echo 'echo "${NAME}."' >> ~/$OE_CONFIG
echo ';;' >> ~/$OE_CONFIG
echo '' >> ~/$OE_CONFIG
echo 'restart|force-reload)' >> ~/$OE_CONFIG
echo 'echo -n "Restarting ${DESC}: "' >> ~/$OE_CONFIG
echo 'start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG
echo '--oknodo' >> ~/$OE_CONFIG
echo 'sleep 1' >> ~/$OE_CONFIG
echo 'start-stop-daemon --start --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG
echo '--chuid ${USER} --background --make-pidfile \' >> ~/$OE_CONFIG
echo '--exec ${DAEMON} -- ${DAEMON_OPTS}' >> ~/$OE_CONFIG
echo 'echo "${NAME}."' >> ~/$OE_CONFIG
echo ';;' >> ~/$OE_CONFIG
echo '*)' >> ~/$OE_CONFIG
echo 'N=/etc/init.d/${NAME}' >> ~/$OE_CONFIG
echo 'echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2' >> ~/$OE_CONFIG
echo 'exit 1' >> ~/$OE_CONFIG
echo ';;' >> ~/$OE_CONFIG
echo '' >> ~/$OE_CONFIG
echo 'esac' >> ~/$OE_CONFIG
echo 'exit 0' >> ~/$OE_CONFIG

echo -e "* Security Init File"
sudo mv ~/$OE_CONFIG /etc/init.d/$OE_CONFIG
sudo chmod 755 /etc/init.d/$OE_CONFIG
sudo chown root: /etc/init.d/$OE_CONFIG

echo -e "* Start ODOO on Startup"
sudo update-rc.d $OE_CONFIG defaults

sudo service $OE_CONFIG start
echo "Done! The ODOO server can be started with: service $OE_CONFIG start"


When running this script, you will be asked to configure somethings.

For safety, make sure to change the Odoo super administrator password.

The next step is to make this file executable, to be able to execute it and everything will be installed automatically. To do this use :

#sudo chmod +x odoo_install.sh

And now you should execute the script by using:

./odoo_install.sh


Odoo will be installed automatically!

Important : Give this a while since it will need to download all dependencies, download Odoo and install it.

Browse to http://localhost:8069/ and you’ll see this screen:

Odoo 9

Congratulation ! you have finished 🙂

Liclipse (Eclipse) Installation on Ubuntu

Hello everyone

We will show you in this Tutorial how to Install LiClipse, the most popular Eclipse IDE.

LiClipse is the lightweight version of the most popular Eclipse IDE and it includes PyDev and Egit by default which will help python/django developers

The problem is that we cannot find this version in Ubuntu Software Center but we can install it easily if we follow the steps below

You can also watch this video that succinctly summarize the steps of this tutorial

Dowload LiClipse

Download latest version of LiClipse from the official website, for my case I choose LiClipse 3.0.1 for Linux (64 bits).

Install LiClipse

Go to your Download folder and extract Liclipse file:

#sudo tar xvzf liclipse_3.0.1_linux.gtk.x86.tar.gz

Move the extracted folder to /opt folder using the command

#sudo mv liclipse /opt

Now create a shortcut of LiClipse in the applications folder:

#sudo ln -s /opt/liclipse/LiClipse /usr/bin/liclipse

We have now installed LiCipse in our system. But we need to create a launcher for easier access. Paste the following command in terminal to create the launcher

#sudo nano /usr/share/applications/liclipse.desktop

Paste the following content in the file. NB: in my case I used the version 3.0.1, you should use the version you are working with.

[Desktop Entry]
Version=3.0.1
Name=LiClipse
Comment=IDE for Python/Django developers
Exec=env UBUNTU_MENUPROXY=0 /opt/liclipse/LiClipse
Icon=/opt/liclipse/icon.xpm
Terminal=false
Type=Application
Categories=Utility;Application;Development;IDE

Rest of the content should not be changed. Save this file :

CTRL+O : To save the changes.
CTRL+X : To exit

Now have installed LiClipse successfully. You can now launch LiClipse from the Ubuntu dash menu

Liclipse

It can be locked in the launcher

lock to Launcher

Congratulations !! 🙂

Debug Odoo 9 & 8 using Eclipse IDE

Hello everyone
We will show you in this tutorial, how to debug Odoo V9 / V8 from Eclipse IDE ( step by step ). We will be working on Ubuntu  14.04 for stability reasons, but you can use any other version.

Update the system and install necessary packages for Odoo :

First thing to do is to update your system, which let you get the newest versions of packages and their dependencies existing on your machine.

#sudo apt-get update
#sudo apt-get upgrade

aptget upgrade

aptget update

Then we should install the Prerequisites packages for Odoo :

#sudo apt-get install python-cups python-dateutil python-decorator python-docutils python-feedparser python-gdata python-geoip python-gevent python-imaging python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests python-simplejson python-tz python-unicodecsv python-unittest2 python-vatnumber python-vobject python-werkzeug python-xlwt python-yaml wkhtmltopdf

To install wkhtmltopdf (a package that let you print reports in Odoo 8 & 9), you should run this commands :

#sudo wget http://download.gna.org/wkhtmltopdf/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
#sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb
#sudo cp /usr/local/bin/wkhtmltopdf /usr/bin
#sudo cp /usr/local/bin/wkhtmltoimage /usr/bin

For Ubuntu 14.04 users, you should install “python-passlib” package, to avoid “error 500 Internal Server” Error :

#sudo apt-get install python-passlib

Setup Eclipse :

Very Important : For me I used LiClipse is a very featured Eclipse (Provides a number of enhancements) for Linux with PyDev (Python) support, To install/run it : (A big thanks to arulmr)

LiClipse is the lightweight version of the most popular Eclipse IDE and it includes PyDev and Egit by default which will help python/django developers

To install it follow my article Liclipse (Eclipse) Installation on Ubuntu

Once LiClipse installation is Done. We need to setup the GIT repository in order to download Odoo Source code. To do so, Click Windows -> Open Perspective -> Other

Eclipse 7

A Window will Open ask you to select a perspective. Click Git

Eclipse 8

 

In Next Windows Select “Clone a Git Repository

Eclipse 9

In th URI field type “https://github.com/odoo/odoo.git“ | In the Host field type “github.com“ | In the Repository path type “/odoo/odoo.git“. Click Next

Eclipse 10

You will be presented which Branches you want to clone, You can see all of the versions of Odoo. Select only 8.0 or 9.0 or which ever version you want.

In next windows Select the Directory where you want to clone the Source and Click Finish (We recommend Eclipse workspace  : /home/workspace/odoo). The Cloning Process will begin. This Process may Take a while depending on the speed of your Internet.

Now we need to Setup eclipse’s Perspective to work with Python. To do so click Window -> Open Perspective -> Other and from the Window Select Pydev and Click OK.

Eclipse 11

To setup the Interpreter for python, Click Windows -> Preference and In the Left Pane, Select Pydev and the Interpreter Python and then Click Auto-Config on the Right side, The System will automatically detect Your python version. Click OK to Close this Windows once eclipse is done setting up Environment.

Eclipse 13

To dispaly your code in Eclipse Click File -> Pydev Project.

In project name type odoo the name you like. uncheck Use Default and click Browse and select the source directory (The directory that you specified earlier, where cloning the source. As an example we used /home/workspace/odoo ) and click Finish.

We Finished with setting up Eclipse for Odoo use.

Setting up Odoo Configuration File

You can create your own config file for Odoo like this one :

#sudo nano /etc/openerp-server.conf

Copy this content in the file :

[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /home/workspace/odoo/addons

( In addons_path you should use your own addons directory )

ctrl + o to save the file and ctrl + x to exit nano

To take this file in consideration go to the “Running the Code of Odoo from Eclipse” step.

Configure PostgreSQL server

Now we need to create a role in PostgreSql for the user that will be Running Eclipse.

Usually we use our current user

#sudo su postgres
#psql -t template1
#template1=# create user usmanbek with superuser password 'postgres';
#template1=# \q

Running the Code of Odoo from Eclipse

To take the openerp-server.conf file in consideration, you should go to Eclipse openerp-server -> Run As -> Run Configuration.

config 1

In the argument tab click on Variables.

config 2

A select variable box appears. Click on Edit Variables.

config 3

A preferences box appears. Click on New.

config4

A new box appears. Put whatever you want in “Name” field, Ex: Config file | In the “Value” field put : –config=/etc/openerp-server.conf

config5

Choose the variable you have just created (for my case it’s Config file) and Click Ok

config 6

Finally you click on Run 🙂

Now to access the Webclient, type localhost:8069. You will see this page.

odoo running

Congratulation, now you can develop Odoo modules easily