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)
UPDATE:
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?
UPDATE:
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...
UPDATE:
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!
Thanks.
You must install PyDAV from https://pypi.python.org/pypi/PyDAV/0.21
Installed it. Didn't help.
Did you copied the DAV folder from Python27\Lib\site-packages\ to Program Files (x86)\OpenERP xx\server and restarted your server
There is no 'DAV' folder. Only a 'WebDAV' folder. I had restarted the server.
utils, report and propfind are there !!!
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)
Any progress?
In fact you can use DAV or Webdav till the files utils, report and propfind are there. Try to download PyWebDAV 0.9.4.1 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/0.9.4.1 or https://pypi.python.org/pypi/PyWebDAV/0.9.8
Any progress ?
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.
is it the same error ?
yes
Very strange, but keep on and try with the 0.9.4.1 version, istall it and copy the two folders DAV and DAVSERVER to ...\Program Files (x86)\OpenERP xx\server
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...
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).