Git Product home page Git Product logo

acsone.recipe.odoo.pydev's Introduction

acsone.recipe.odoo.pydev

Version

An extension to anybox.recipe.odoo that generates Odoo projects for the Eclipse PyDev IDE.

This buildout recipe is an extension to the fully featured recipe developed by Anybox: anybox.recipe.odoo.

It generates a ready-to-use Eclipse PyDev Project, pointing to all dependencies required to develop, run and debug your Odoo server as well as your own addons.

The generated project is fully configured, including a preset PYTHONPATH so as to support debugging, pep8 import checks, auto completion

Since the recipe is an extension to anybox.recipe.odoo, the first step, if not done, is to add your anybox.recipe.odoo, configuration to buildout.cfg and include it in ${buildout:parts}.

An example:

[buildout]
...
parts = ... openerp

[openerp]
recipe = anybox.recipe.odoo:server
version = git https://github.com/odoo/odoo.git odoo 7.0
addons = ...
....

Another example using git and Odoo V8:

[buildout]
...
parts = ... openerp

[openerp]
recipe = anybox.recipe.odoo[bzr]:server
version = git https://github.com/odoo/odoo.git odoo 8.0
addons = ...
....

A good practice is to use the inheritance mechanism of buildout to define your development environment in an other file such as devel.cfg:

[buildout]
extends = buildout.cfg
parts = ... pydevproject

[pydevproject]
<= openerp
recipe = acsone.recipe.odoo.pydev
project-name = my_project_name
python-version = python 2.7
python-interpreter = Default
eggs += any_additional_egg_you_want

Then prepare your virtualenv and install zc.buildout

$ virtualenv

$ bin/pip install zc.buildout

To run the recipe and generate your project, run

$ bin/buildout install pydevproject

The launch eclipse, import the project and you are ready to go. To debug, use bin/start_openerp_pydev in the eclipse debug configuration.

These match the options of a PyDev Project.

name
The project name. This is just for Eclipse and can be anything you want.
python-version
The combination of interpreter and grammar version. E.g. python 2.7 (default is python 2.7)
python-interpreter
The interpreter name, as configured in the the Eclipse Preferences for PyDev. Usually Default is fine. (default is Default)

In addition to the startup scripts and configuration file generated by anybox.recipe.odoo., this recipe generates the two files that define a PyDev Project:

  • .project
  • .pydevproject.

While eggs and their dependencies are declared as external libraries, the server and its addons are declared as source folders. In the same time, the recipe uses in background the collective.recipe.omelette recipe to build a unified directory structure of declared addons, symlinking to the actual contents, in order to allow proper pep8 check and auto completion. This directory structure is also declared as external dependency to avoid confusion between source folder and the unified directory structure.

It's a know issue that when same addons are both in the PYTHONPATH and addons_path (it's the case with the generated project definition), it's not possible to start the server due to import errors. To avoid this problem, the recipe adds to the generated scripts , specific code to remove parts of sys.path that are also in addons_path.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.