Odoo Help


How to set Python version for OpenERP 7 on Windows?

René Schuster
on 11/13/14, 4:48 AM 5,358 views

I have a local installation of OpenERP 7 on a windows machine. I have installed it via the latest All-in-one exe. On my machine, I have multiple versions of Python installed (2.7, 3.3).

Is there a way to tell OpenERP which version to use after installation?
(Like there is the line #!/usr/bin/python2.6 in /usr/bin/openerp-server)



I'am porting CalDAV module to version 7.0.
When I try to install the module, I get an ImportError:

File "C:\Program Files (x86)\OpenERP 7.0-20141104-021038\server\openerp\addons\document_webdav\webdav.py", line 40, in <module>
ImportError: No module named DAV

The CalDAV module has document_webdav dependency. Checking line 40 in webdav.py shows:

35: try:
36:     from pywebdav.lib import utils
37:     from pywebdav.lib.propfind import PROPFIND
38:     from pywebdav.lib.report import REPORT
39: except ImportError:
40:     from DAV import utils
41:     from DAV.propfind import PROPFIND
42:     from DAV.report import REPORT

So I tried to install DAV for Python. Which failed: module not found.

Next I treid to install PyWebDav for Python. Success. For both version 2.7 and 3.3.

Trying to install my CalDAV module threw the same error.

Opening Python console and importing pywebdav works for both versions. "from pywebdav.lib import utils" works for 2.7 and fails for 3.3 ...
So I naively thought my OpenERP server would use python 3.3 instead of 2.7 ...

After Med Said BARA's answer I checked my openerp/server folder. pywebdav 0.9.8 module is existing. But yet the quoted try/except block from above tries to import DAV... Why?



Installed PyDAV for python 2.7.

Copied the new module "WebDAV" to my openerp/server folder.

Still the same ImportError on module installation. Since the module is 'WebDAV' not 'DAV'. And WebDAV has no utils, REPORT, PROPFIND anyway...



I think I finally understand the quoted try-except-block. The try is for pywebdav 0.9.8 while the except is for older pywebdav versions, that have the DAV / DAVSERVER folder structure, instead of the lib.

But still, I have pywebdav 0.9.8 installed. It should work!



You must install PyDAV from https://pypi.python.org/pypi/PyDAV/0.21

Med Said BARA
on 11/14/14, 6:32 AM

Installed it. Didn't help.

René Schuster
on 11/14/14, 6:53 AM

Did you copied the DAV folder from Python27\Lib\site-packages\ to Program Files (x86)\OpenERP xx\server and restarted your server

Med Said BARA
on 11/14/14, 7:14 AM

There is no 'DAV' folder. Only a 'WebDAV' folder. I had restarted the server.

René Schuster
on 11/14/14, 7:17 AM

utils, report and propfind are there !!!

Med Said BARA
on 11/14/14, 7:23 AM

Another trick is to look under X:\Python27\Lib\site-packages\ if there are folders DAV or WebDAV with .......-py2.7.egg extension, open those folder, there you can find the DAV folder (copy this one)

Med Said BARA
on 11/14/14, 7:58 AM

Any progress?

Med Said BARA
on 11/14/14, 8:34 AM

In fact you can use DAV or Webdav till the files utils, report and propfind are there. Try to download PyWebDAV packed with DAV and DAVSERVER folder) or PyWebDAV 0.9.8 (packed with pywebdav folder and lib and server subfolder): https://pypi.python.org/pypi/PyWebDAV/ or https://pypi.python.org/pypi/PyWebDAV/0.9.8

Med Said BARA
on 11/14/14, 9:20 AM

Any progress ?

Med Said BARA
on 11/16/14, 10:43 AM

Your endurance is admirable. Thanks. As mentioned, I now have both, the PyWebDav 0.9.8 and WebDAV 0.21 module in my server folder. It's still not working.

René Schuster
on 11/18/14, 4:06 AM

is it the same error ?

Med Said BARA
on 11/18/14, 7:27 AM


René Schuster
on 11/18/14, 7:28 AM

Very strange, but keep on and try with the version, istall it and copy the two folders DAV and DAVSERVER to ...\Program Files (x86)\OpenERP xx\server

Med Said BARA
on 11/18/14, 8:20 AM

That worked. Since you already gave the answer to the original question (OpenERP uses its own installation of Python in the server folder) I will accept your answer. Thanks for you great help. But nonetheless I don't know why version 0.9.8 of pywebdav is not working...

René Schuster
on 11/18/14, 8:57 AM

I think there is something wrong in the webdav.py code. I will try to investigate further and keep you informed. Last thing, take a look at https://github.com/initOS/openerp-dav, maybe you will find it interesting (Do not use along with documant_webdav - Read the issue).

Med Said BARA
on 11/18/14, 10:49 AM

Med Said BARA

--Med Said BARA--

| 5 5 7
--Med Said BARA--
Med Said BARA
On 11/13/14, 2:45 PM

Under Windows OpenERP 7 use his own python 2.7, take a look under ../Program Files (x86)/OpenERPxx/server/.. (or where you have installed OpenERP).


Lines added after comment from René Schuster

This is probably due to a missing external dependency in OpenERP (a Python dependency).

What you should do: is to download The_related_Package for the Version 2.7 (preferably  a windows auto-install package - see at http://www.lfd.uci.edu/~gohlke/pythonlibs/ if you can find it or by using easy_install) and Install the package. After install you can find this package under X:\Python27\Lib\site-packages\ , copy "The_related_Package" folder from X:\Python27\Lib\site-packages\The_related_Package to Y:\Program Files (x86)\OpenERP xx\server\. This way OpenERp will find the external dependency when needed.

Let's resume:  I think that your PYTHONPATH variable is pointing to the 3.3 Python folder, you have to change it to point to the 2.7

Follow http://www.katsbits.com/tutorials/blender/python-path-variable.php

Reinstall PyDAV ..... and copy the DAV folder as described before

So under windows OpenERP always uses Python 2.7? But I get import errors on module installation that manually only occur with my Python 3.3.

René Schuster
on 11/14/14, 3:55 AM

Can you tell me more about the IMPORT ERROR ...

Med Said BARA
on 11/14/14, 6:07 AM

Thanks for your help. I have updated my question.

René Schuster
on 11/14/14, 6:25 AM

Just for clarification: As far as I can see now, OpenERP has nothing to do with any installed python. It installs and uses its own python. Concluding you don't need to have python installed to run an OpenERP server on WINDOWS. (btw: my environment variables contain the folders of both python versions)

René Schuster
on 11/18/14, 9:03 AM

Yes and No. Yes because it uses his own python, and No because you need to have python installed especially when we encounter an external python depency need (such in your case, with pywebdav), in this case we need to install this dependency in python first (for the same version 2.7 as in OpenERP) and after that copy it to .....openerp/server folder. You can have more than 2 python versions installed, but the PYTHONPATH var must point to only one!

Med Said BARA
on 11/18/14, 11:06 AM

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)


Asked: 11/13/14, 4:48 AM
Seen: 5358 times
Last updated: 3/16/15, 8:10 AM