domingo, 6 de diciembre de 2020

AttributeError: module 'enum' has no attribute 'IntFlag'

 Intentando ejecutar Odoo 12 en Ubuntu 16.04 me dio el siguiente error.

... import dns.resolver
File "/usr/local/lib/python3.5/dist-packages/dns/resolver.py", line 32, in import dns.flags
File "/usr/local/lib/python3.5/dist-packages/dns/flags.py", line 24, in class Flag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'

Como mi Odoo se esta ejecutando con Python 3.5 y recordé que el compañero de JPV Luis Pabon le había dado este error y lo soluciono luego de varias horas investigando junto al compañero Jonathan Reyes, le pregunte y me recomendó que desinstalara dnspython y lo volviera a instalar. lo cual lo hice con los siguientes comando de terminal.

sudo python3.5 -m pip uninstall dnspython
sudo python3.5 -m pip install dnspython

Una vez lanzado estos dos comandos, ejecute nuevamente el Odoo y todo funcio correctamente.

Felipe Villamizar. felipeodoo@gmail.com

Instalar Python 3.7 teniendo instalado Python 2.7 y Python 3.5 para Ejecutar Odoo 13

En algunas oportunidades he tenido que tenes varias versiones de Odoo para ejecutar en mi PC, según la versión de Odoo requiere una versión de Python diferente, e incluso para algunos módulos que utilizan importaciones y en algunos caso requieren una versión o subversión de Python diferente, originado bugs inesperados.

Odoo nos ofrece en el repositorio un archivo .txt por cada versión que contiene los requerimientos aceptados por dicha versión, el archivo se llama requirements.txt Cuando ejecutamos este archivo es adonde podemos ver algunas alertas o errores que debemos solventar. si no tenemos la versión de Python instada por defecto.

Para este ejemplo voy a utilizar un escenario de que tengo Python 2.7 y 3.5 instalado en Ubuntu 16.04 y requiero instalar Python 3.7 para Odoo 12 y Odoo 13. pero esto pasos le pudiera ayudar para otras versiones en otros escenarios.

Lo primero es instalar la versión de Python 3.7 via PPA con los siguientes comando:

Primero instale el paquete de propiedades del software de Ubuntu si aún no está instalado en su sistema.


apt update sudo apt install software-properties-common

Después de eso, ejecute los comandos para agregar el PPA.


add-apt-repository ppa:deadsnakes/ppa

Finalmente, ejecute los siguientes comandos para instalar Python 3.7



apt update sudo apt install python3.7

apt update sudo apt install python3.7-dev 

Con esto ya tenemos instalado python 3.7 desde una forma manual de su codigo fuente.

El siguiente paso es ejecutar requeriments.txt co pip en la virsion de python 3.7 :

python3.7 -m pip install -r requirements.txt

Si te genera el siguiente error cuando ejecutes el comando anterior.


Collecting psycopg2==2.7.3.1 (from -r requirements.txt (line 27)) Downloading https://files.pythonhosted.org/packages/6b/fb/15c687eda2f925f0ff59373063fdb408471b4284714a7761daaa65c01f15/psycopg2-2.7.3.1.tar.gz (425kB) 100% |████████████████████████████████| 430kB 615kB/s Complete output from command python setup.py egg_info: running egg_info creating pip-egg-info/psycopg2.egg-info writing pip-egg-info/psycopg2.egg-info/PKG-INFO writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt' warning: manifest_maker: standard file '-c' not found Error: b'You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.\n' ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-zcw_26si/psycopg2/

Use estos siguientes comandos, esto resolverá el mismo:


sudo apt-get install postgresql. sudo apt-get install python-psycopg2 sudo apt-get install libpq-dev

Una vez instalados los paquetes anteriores vuelva a ejecutar el siguiente comando:


python3.7 -m pip install -r requirements.txt 

Finalmente de ben ejecutar su Odoo con el siguiente comando.

python3.7 ./odoo-bin -c you_file.conf

Con esto yo he resuelto dicho inconveniente cuando he requerido de instalar python 3.7 teniendo instaldado python 2.7 y 3.5 para ejecutar algunas veriones de Odoo. Epero les sea de utilidad. felipeodoo@gmail.com