Error en odoo v12 Facturae con pycountry

507 views
Skip to first unread message

Javier Jiménez

unread,
Aug 13, 2020, 7:56:15 AM8/13/20
to Usuarios Odoo / OpenERP en España
Hola, 

tengo un odoo v12 instalado en un entorno virtual de python en un ubuntu 18. Estoy intentando instalar los módulos de OCA de Facturae pero me pide la dependencia de pycountry. La instalo dentro del entorno virtual  en su versión (pycountry-20.7.3) y cuando voy a instalar el módulo de Facturae me da un error que no se muy bien cómo manejar.

Dejo la traza.

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/opt/odoo12/odoo/odoo/api.py", line 1049, in get
    value = self._data[key][field][record._ids[0]]
KeyError: 3

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo12/odoo/odoo/fields.py", line 1012, in __get__
    value = record.env.cache.get(record, self)
  File "/opt/odoo12/odoo/odoo/api.py", line 1051, in get
    raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('res.country(3,).code_alpha3', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo12/odoo/odoo/http.py", line 656, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo12/odoo/odoo/http.py", line 314, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/opt/odoo12/odoo/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/opt/odoo12/odoo/odoo/http.py", line 698, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo12/odoo/odoo/http.py", line 346, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo12/odoo/odoo/service/model.py", line 98, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo12/odoo/odoo/http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo12/odoo/odoo/http.py", line 941, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo12/odoo/odoo/http.py", line 519, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo12/odoo/addons/web/controllers/main.py", line 966, in call_button
    action = self._call_kw(model, method, args, {})
  File "/opt/odoo12/odoo/addons/web/controllers/main.py", line 954, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/opt/odoo12/odoo/odoo/api.py", line 759, in call_kw
    return _call_kw_multi(method, model, args, kwargs)
  File "/opt/odoo12/odoo/odoo/api.py", line 746, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-61>", line 2, in button_immediate_install
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_module.py", line 445, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_module.py", line 561, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/opt/odoo12/odoo/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo12/odoo/odoo/modules/loading.py", line 421, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/opt/odoo12/odoo/odoo/modules/loading.py", line 313, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/opt/odoo12/odoo/odoo/modules/loading.py", line 195, in load_module_graph
    registry.init_models(cr, model_names, {'module': package.name})
  File "/opt/odoo12/odoo/odoo/modules/registry.py", line 308, in init_models
    models[0].recompute()
  File "/opt/odoo12/odoo/odoo/models.py", line 5298, in recompute
    vals = {n: rec[n] for n in ns}
  File "/opt/odoo12/odoo/odoo/models.py", line 5298, in <dictcomp>
    vals = {n: rec[n] for n in ns}
  File "/opt/odoo12/odoo/odoo/models.py", line 5145, in __getitem__
    return self._fields[key].__get__(self, type(self))
  File "/opt/odoo12/odoo/odoo/fields.py", line 1016, in __get__
    self.determine_value(record)
  File "/opt/odoo12/odoo/odoo/fields.py", line 1105, in determine_value
    self.compute_value(recs)
  File "/opt/odoo12/odoo/odoo/fields.py", line 1083, in compute_value
    self._compute_value(records)
  File "/opt/odoo12/odoo/odoo/fields.py", line 1074, in _compute_value
    getattr(records, self.compute)()
  File "/opt/odoo12/odoo-custom-addons/community-data-files/base_iso3166/models/res_country.py", line 33, in _compute_codes
    alpha_2=country.code)
  File "/opt/odoo12/odoo-venv/lib/python3.6/site-packages/pycountry/db.py", line 41, in load_if_needed
    return f(self, *args, **kw)
  File "/opt/odoo12/odoo-venv/lib/python3.6/site-packages/pycountry/db.py", line 110, in get
    raise LookupError()
LookupError


Pedro Manuel Baeza Romero

unread,
Aug 13, 2020, 7:59:49 AM8/13/20
to Usuarios Odoo / OpenERP en España
Prueba a instalar una versión anterior de esa librería. Cada versión se cargan el API...

Un saludo.

Javier Jiménez

unread,
Aug 13, 2020, 8:20:23 AM8/13/20
to Usuarios Odoo / OpenERP en España
Con la versión pycountry-19.8.18 ha funcionado.

Gracias Pedro!

Message has been deleted

Ricardo

unread,
Oct 21, 2021, 7:37:57 AM10/21/21
to Usuarios Odoo / OpenERP en España
Hola, tenía el mismo problema y lo he conseguido solucionar. Ahora al intentar instalar Factura-e me de el mensaje de error:
"Imposible instalar el módulo "l10n_es_facturae" porqué hay una dependencia externa no resuelta: No module named OpenSSL"
He instalado varias versiones de pyOpenSSL y sigue saliendo el error.
¿alguna orientación de por dónde puede estar el problema?
Gracias.

Juan Ignacio Úbeda Goenaga

unread,
Oct 21, 2021, 7:45:01 AM10/21/21
to openerp-s...@googlegroups.com
Buenas Ricardo,

Asegúrate de que estés actualizando las librerías en la misma versión de python que está ejecutando la instancia de Odoo, es decir, que si estás lanzando Odoo con python3.6, y tienes en esa máquina también el python 3.8, no estés actualizando con pip el python3.8 y no el 3.6

Espero haberme explicado bien

Saludos

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/openerp-spain-users/69c86e1a-be1b-4c15-b6a0-df15c557c51fn%40googlegroups.com.


--



Juan Ignacio Úbeda Goenaga

CEO | Consultoría y desarrollo Odoo

Soluciones Tecnológicas Freedoo, S.L.U.

946 41 05 65

juani@freedoo.es


Aviso legal: Este mensaje electrónico está dirigido únicamente a la(s) dirección(es)  indicadas anteriormente; el carácter confidencial, personal e intransferible del mismo  está protegido legalmente. Cualquier revelación, uso o reenvío no autorizado, completo o en parte, está prohibido. Si ha recibido este mensaje por equivocación, notifíquelo inmediatamente a la persona que lo ha enviado y borre el  mensaje original junto  con sus ficheros anexos sin leerlo ni grabarlo, total o parcialmente

Ricardo

unread,
Oct 21, 2021, 7:58:56 AM10/21/21
to Usuarios Odoo / OpenERP en España
Entiendo lo que me dices Juan Ignacio,  lo que no tengo claro ahora mismo es donde puedo ver con que python se lanza Odoo.

Gracias.

Juan Ignacio Úbeda Goenaga

unread,
Oct 21, 2021, 8:06:28 AM10/21/21
to openerp-s...@googlegroups.com
Depende de como tengas hecha la instalación, si usas entornos virtuales o no, si está en docker o directamente en el sistema operativo de la máquina,... revisa los path de Python y miras las librerías que estás usando

Ricardo

unread,
Oct 21, 2021, 3:08:16 PM10/21/21
to Usuarios Odoo / OpenERP en España
He comprobado el path y correcto, python 368.
Lo que hago es lo siguiente, desde símbolos de sistema (administrador) hago un "pip install pyopenssl" y 
no me da ningún error. Hago un "pip list" y me aparece el pyopenssl Sin embargo me voy y ejecuto python y hago un "help (´modules')" y no me aparece pyopenssl. No consigo solucionarlo.

Juan Ignacio Úbeda Goenaga

unread,
Oct 21, 2021, 3:17:43 PM10/21/21
to openerp-s...@googlegroups.com
Por tu respuesta entiendo que lo estás instalando en Windows, yo te aconsejaría hacerlo en Linux, pero si vas a hacerlo en Windows, usaría Virtualenv o Anaconda para crear un entorno virtual donde instalar todas las dependencias sin problemas.

En el caso de Windows no puedo ayudarte demasiado

Saludos

Ricardo

unread,
Oct 21, 2021, 3:29:04 PM10/21/21
to Usuarios Odoo / OpenERP en España
Si, lo tengo sobre Win instalado. Intentaré con virtualenv. Gracias por la ayuda.

Ricardo

unread,
Oct 22, 2021, 12:56:32 PM10/22/21
to Usuarios Odoo / OpenERP en España
Pongo versiones instaladas por si alguien puede sacarme del pozo

py lib.png

Jordi Pujol Ulied

unread,
Jun 11, 2023, 1:41:27 PM6/11/23
to Usuarios Odoo / OpenERP en España
Buenas tardes,

Estoy intentando instalar Facturae, y me da el siguiente error (ver más abajo).
He hecho un downgrade de pycountry a 19.8.18, pero no ha funcionado.

¿Alguna idea?

Saludos.

Detalles del error:

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1049, in get

    value = self._data[key][field][record._ids[0]]
KeyError: 3

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1012, in __get__
    value = record.env.cache.get(record, self)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1051, in get

    raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('res.country(3,).code_alpha3', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 656, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 314, in _handle_exception

    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 698, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 346, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 98, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 941, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 519, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 966, in call_button

    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 954, in _call_kw

    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 759, in call_kw

    return _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 746, in _call_kw_multi

    result = method(recs, *args, **kwargs)
  File "<decorator-gen-61>", line 2, in button_immediate_install
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 445, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 561, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 421, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 313, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 195, in load_module_graph

    registry.init_models(cr, model_names, {'module': package.name})
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 308, in init_models
    models[0].recompute()
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 5298, in recompute

    vals = {n: rec[n] for n in ns}
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 5298, in <dictcomp>

    vals = {n: rec[n] for n in ns}
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 5145, in __getitem__

    return self._fields[key].__get__(self, type(self))
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1016, in __get__
    self.determine_value(record)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1105, in determine_value
    self.compute_value(recs)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1083, in compute_value
    self._compute_value(records)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1074, in _compute_value
    getattr(records, self.compute)()
  File "/usr/local/lib/python3.5/dist-packages/odoo/addons/base_iso3166/models/res_country.py", line 31, in _compute_codes
    c = pycountry.countries.get(alpha_2=country.code)
  File "/usr/local/lib/python3.5/dist-packages/pycountry/db.py", line 41, in load_if_needed
    return f(self, *args, **kw)
  File "/usr/local/lib/python3.5/dist-packages/pycountry/db.py", line 110, in get
    raise LookupError()
LookupError

david gonzalez

unread,
Jun 11, 2023, 3:44:32 PM6/11/23
to openerp-s...@googlegroups.com
Buenas tardes, me he leído el hilo pero no consigo ver la versíón de odoo en la que estás trabajando.
Para asegurarnos que la dependendencias está en la versión correcta.
Por otro lado no se si la base de datos tiene países metido pudiera ser que estuviera vacío en alguna librería.
Por último comprobaría que los cambios que estas haciendo de las dependencias son en la instancia que utiliza odoo.
https://www.odoo.com/documentation/15.0/es/administration/install/install.html#editions
También cuando hagas algún cambio prueba a reiniciar el servicio de odoo, para que coja los cambios.



Jordi Pujol Ulied

unread,
Jun 11, 2023, 4:03:51 PM6/11/23
to Usuarios Odoo / OpenERP en España
Hola, versión 12.0
He reiniciado el contenedor docker que "contiene" odoo.
Paises? Tengo que investigar....

Jordi Pujol Ulied

unread,
Jun 12, 2023, 3:30:43 AM6/12/23
to Usuarios Odoo / OpenERP en España
Tambien he probado de instalar pycountry-19.8.18, reiniciado, pero nada....

Rubén García

unread,
Jun 20, 2023, 5:03:41 PM6/20/23
to Usuarios Odoo / OpenERP en España
Buenas noches  Jordi:

No se si te puede servir,  pero he publicado una respuesta en un hilo que creo que te puede servir, se producen problemas con las librerias cryptography cffi  puede que te afecte a la versión de pycountry también, mira aquí a ver si te sirve de algo

https://groups.google.com/g/openerp-spain-users/c/ro0XJAtnJKw/m/VqHkUIJfBAAJ


Tengo también un Contenedor con la 12 y la contabilidad completa instalada, si necesitas una captura de pip3 list de avisas.


JAAK-KRIST JAN

unread,
Nov 1, 2023, 5:27:52 PM11/1/23
to Usuarios Odoo / OpenERP en España
MT103/202 DIRECT WIRE TRANSFER
PAYPAL TRANSFER
CASHAPP TRANSFER
ZELLE TRANSFER
TRANSFER WISE
WESTERN UNION TRANSFER
BITCOIN FLASHING
BANK ACCOUNT LOADING/FLASHING
IBAN TO IBAN TRANSFER
MONEYGRAM TRANSFER
IPIP/DTC
SLBC PROVIDER
CREDIT CARD TOP UP
DUMPS/ PINS
SEPA TRANSFER
WIRE TRANSFER
BITCOIN TOP UP
GLOBALPAY INC US
SKRILL USA
UNIONPAY RECEIVER

Thanks.


NOTE; ONLY SERIOUS / RELIABLE RECEIVERS CAN CONTACT.

DM ME ON WHATSAPP
+447342523185
Reply all
Reply to author
Forward
0 new messages