2017-02-14 4 views
1

Я клонировал модуль Auto Backup из репозитория github (https://github.com/Yenthe666/auto_backup) в мою машину Odoo и добавил правильную зависимость к файлу odoo-server.conf, но когда я нажимаю «Обновить список модулей» на приложение, я получил следующее сообщение:Odoo 8 Auto Backup Module нуждается в зависимости от pysftp

Traceback (most recent call last): 
File "/opt/odoo/openerp/http.py", line 544, in _handle_exception 
return super(JsonRequest, self)._handle_exception(exception) 
File "/opt/odoo/openerp/http.py", line 581, in dispatch 
result = self._call_function(**self.params) 
File "/opt/odoo/openerp/http.py", line 317, in _call_function 
return checked_call(self.db, *args, **kwargs) 
File "/opt/odoo/openerp/service/model.py", line 118, in wrapper 
return f(dbname, *args, **kwargs) 
File "/opt/odoo/openerp/http.py", line 314, in checked_call 
return self.endpoint(*a, **kw) 
File "/opt/odoo/openerp/http.py", line 810, in __call__ 
return self.method(*args, **kw) 
File "/opt/odoo/openerp/http.py", line 410, in response_wrap 
response = f(*args, **kw) 
File "/opt/odoo/addons/web/controllers/main.py", line 948, in call_button 
action = self._call_kw(model, method, args, {}) 
File "/opt/odoo/addons/web/controllers/main.py", line 936, in _call_kw 
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) 
File "/opt/odoo/openerp/api.py", line 268, in wrapper 
return old_api(self, *args, **kwargs) 
File "/opt/odoo/openerp/api.py", line 439, in old_api 
result = new_api(recs, *args, **kwargs) 
File "/opt/odoo/openerp/api.py", line 443, in new_api 
result = [method(rec, *args, **kwargs) for rec in self 
File "/opt/odoo/openerp/addons/base/module/wizard/base_module_update.py", line 15, in update_module self.updated, self.added = self.env['ir.module.module'].update_list() 
File "/opt/odoo/openerp/api.py", line 266, in wrapper 
return new_api(self, *args, **kwargs) 
File "/opt/odoo/openerp/api.py", line 508, in new_api 
result = method(self._model, cr, uid, *args, **old_kwargs) 
File "/opt/odoo/openerp/addons/base/module/module.py", line 651, in update_list 
handler.load_addons() 
File "/opt/odoo/openerp/http.py", line 1317, in load_addons 
m = __import__('openerp.addons.' + module) 
File "/opt/odoo/openerp/modules/module.py", line 80, in load_module 
mod = imp.load_module('openerp.addons.' + module_part, f, path, descr) 
File "/opt/odoo/auto_backup/auto_backup/__init__.py", line 23, in 
import backup_scheduler 
File "/opt/odoo/auto_backup/auto_backup/backup_scheduler.py", line 33, in 
raise ImportError('This module needs pysftp to automaticly write backups to the FTP through SFTP. 
Please install pysftp on your system. (sudo pip install pysftp)') 
ImportError: This module needs pysftp to automaticly write backups to the FTP through SFTP. Please install pysftp on your system. (sudo pip install pysftp) 

Тогда я набранный sudo pip install pysftp в терминале, и я получил

Requirement already satisfied (use --upgrade to upgrade): pysftp in /usr/local/lib/python2.7/dist-packages 
Requirement already satisfied (use --upgrade to upgrade): paramiko>=1.17 in /usr/local/lib/python2.7/dist-packages (from pysftp) 
Cleaning up... 

Я даже пытался набрать sudo pip install pysftp --upgrade, но я получил

Requirement already up-to-date: pysftp in /usr/local/lib/python2.7/dist-packages 
Requirement already up-to-date: paramiko>=1.17 in /usr/local/lib/python2.7/dist-packages (from pysftp) 
Cleaning up... 

Не могли бы вы помочь мне в этом, пожалуйста?

ответ

0

Я нашел решение! В случае, если кто имеет аналогичные проблемы, что я сделал:

Я пытался вводить sudo pip uninstall pysftp, он не работал, а потом я сделал:

sudo apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev 

которые являются зависимостью, необходимой для запуска pysftp (спасибо @ lukebranch в проблемах репозитория github, которые это выяснили). В этот момент, если удаленная работа pysftp работала, переустановка pysftp и перезапуск сервера Odoo должны работать. Но в моем случае этого было недостаточно.

Итак, после этого я набрал python, чтобы войти в среду python, а затем import pysftp. Я получил следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/pysftp/__init__.py", line 12, in <module> 
    import paramiko 
    File "/usr/local/lib/python2.7/dist-packages/paramiko/__init__.py", line 30, in <module> 
    from paramiko.transport import SecurityOptions, Transport 
    File "/usr/local/lib/python2.7/dist-packages/paramiko/transport.py", line 33, in <module> 
    from cryptography.hazmat.backends import default_backend 
ImportError: No module named cryptography.hazmat.backends 

Так я вышел питон среду, затем напечатал sudo pip install paramiko и sudo pip install cryptography. Наконец, я снова ввел среду python и набрал import pysftp, и он отлично работал.

Надеюсь, это поможет кому-то еще!