23. Desarrollando con Odoo (18). Errores inesperados.

 1. DistributionNotFound: The 'pdfrw' distribution was not found and is required by the application

Significa que no se encuentra la libraría correspondiente de python (en este caso 'pdfrw'). Para solucionarlo hay que:

1. En __manifest__.py incluir las entradas de la dependencia que falta, pero clasificándola en su grupo. Si es de python o si es de tipo bin 

"external_dependencies": {"python": ["pdfrw","unicode"], "bin": ["libreoffice"]},

2. Instalar la dependencia python o de otra clase 

Si es de python se instalará en principio de uno de estos dos metodos, dependiendo si python se ejecuta o no en entorno (environment)

# DEPENDENCIAS DE PYTHON

# 1. Sin entorno
pip install pdfrw

# 2. Con entorno. 
#   Para ello hace falta ver que comando de python ejecuta odoo.
#     ejecutamos: 
#         ps -ef | grep odoo

#     obtenemos entre otros: 
#         /usr/bin/python3 /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo/odoo-server.log

# utilizamos /usr/bin/python3 o el que hubiera salido

/usr/bin/python3 -m pip install pdfrw

Si Odoo está instalado en docker, se puede correr una shell tal como vimos en la entrada que hablaba de la instalación

#1. Entrar en el contenedor como root y ejecutando un bash de comandos

docker exec -it --user root <nombre_contenedor_creado(solo 3 primeras letras)> bash

#2. Ejecutar pip install pdfrw o /usr/bin/python3 -m pip install pdfrw

Si no es una dependencia de python, como libreoffice, se hará con 

sudo apt install libreoffice

2. Queremos ver el contenido de un campo tipo password en el navegador

Vamos a herramientas para desarrolladores en el navegador y marcamos el icono de settings


Seleccionar: 

Use user agent shadow DOM


y ahora se puede ver el contenido


3. VS nos marca error que no encuentra las dependencias de Odoo

En la máquina de desarrollo del VS hay que descargar Odoo y cargar las dependencias tal como se vió en esta entrada


#1.Cambiamos de directorio (donde está el entorno virutal instalado.
cd ~/MyOdoo/Control-Presencia

#2.Creamos un directorio para Odoo 16 y nos situamos en el
mkdir ~/MyOdoo/odoo-16.0
cd ~/MyOdoo/odoo-16.0

#3.Descargamos Odoo 16 dentro
mkdir ~/MyOdoo/odoo-16.0
git clone https://github.com/odoo/odoo.git -b 16.0 --depth=1

#4.Cambiamos de directorio del entorno
cd ~/MyOdoo/Control-Presencia

#4.Instalamos las dependencias que requiere Odoo
/bin/python -m pip install -r ~/MyOdoo/odoo-16.0/requirements.txt

#5.Instalamos las dependencia Odoo
/bin/python -m pip install -e ~/MyOdoo/odoo-16.0



Comprobamos que hemos seleccionado bien el entorno virtual de Python en VS

Con Shift-Control-P vemos que hemos seleccionado el entorno correcto.


Y elegimos el de nuestro entorno


Una vez elegido el entorno hay que indicarle donde está Odoo. Para seguinos las instrucciones de Angel Adrián Ramirez 

File -> Preferences -> Settings 

escribe import

selecciona Phyton en la izquierda


Pincha sobre "Edit in settings.json"


Añadir al fichero esta entrada

"python.analysis.extraPaths": ["/home/eduard/MyOdoo/odoo-16.0/"],

Quedando el fichero así:

{
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "explorer.confirmDelete": false,
    "editor.guides.bracketPairs": true,
    "[typescriptreact]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "workbench.colorTheme": "Visual Studio Light",
    "workbench.iconTheme": "material-icon-theme",
    "workbench.editorAssociations": {
        "*.jfif": "default"
    },
    "jupyter.interactiveWindow.creationMode": "perFile",
    "vs-kubernetes": {
        "vscode-kubernetes.helm-path-linux": "/home/eduard/.local/state/vs-kubernetes/tools/helm/linux-amd64/helm",
        "vscode-kubernetes.kubectl-path-linux": "/home/eduard/.local/state/vs-kubernetes/tools/kubectl/kubectl",
        "vscode-kubernetes.minikube-path-linux": "/home/eduard/.local/state/vs-kubernetes/tools/minikube/linux-amd64/minikube"
    },
    "git.enableSmartCommit": true,
    "git.confirmSync": false,
    "python.autoComplete.extraPaths": [
        

    ],
    "python.analysis.extraPaths": [
        "/home/eduard/MyOdoo/odoo-16.0/"
    ],
    "github.copilot.editor.enableAutoCompletions": true
}


Rearrancar VS Code



 






Comentarios

Entradas populares de este blog

4. Desarrollando con Odoo (2). Introducción a modulos, vistas, modelos .. Añadir dependencias externas de Python a Odoo

8. Desarrollando con Odoo (6). Herencia de clase en modelos. Herencia de vistas. Operaciones numeradas en Odoo ??

26. Desarrollando con Odoo (21). IMPORTANTE: Entorno de desarrollo. Recapitulaciones del capítulo 8 (Development, Test and Debug).