Cuando pensamos que ya se había cruzado el río, el buen gallo - mi amigo el Dany Lara- no podía insertar código de Python en un documento de RMarkdown usando la versión de escritorio de Posit RStudio a pesar de las soluciones como instalar el Python y direccionarlo desde R con la biblioteca reticulate.
Si bien se podía ejecutar código del interprete base, al querer correr usando módulos y con ello intentando instalar dichos módulos mandaba el siguiente mensaje:
> py_install('matplotlib')
Using virtual environment "D:/tu_usuario/Documents/.virtualenvs/r-reticulate" ...
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLCertVerificationError(1,
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get
local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLCertVerificationError(1,
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get
local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLCertVerificationError(1,
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get
local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLCertVerificationError(1,
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get
local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None))
after connection broken by 'SSLError(SSLCertVerificationError(1,
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get
local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/
Could not fetch URL https://pypi.org/simple/matplotlib/: There was a problem
confirming the ssl certificate:
HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with
url: /simple/matplotlib/
(Caused by SSLError(SSLCertVerificationError(1,
'[SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: unable to get local
issuer certificate (_ssl.c:1006)'))) - skipping Show Traceback Rerun with
DebugError: Error installing package(s): "matplotlib"
Sin lograr que se instalara el módulo requerido, parece ser que es un error en el certificado SSL lo que no permitía que el software se descargara de los repositorios o sitios oficiales.
Por lo que no quedo más instalar todo, lo podemos listar aquí:
1. Desinstalar R, Posit RStudio y RTools.
2. Borrar carpetas usando el Explorador de Archivos de las carpetas que tengan que ver con R y reticulate.
3. Bajar e instalar R.
4. Bajar e instalar Posit RStudio.
5. Bajar e instalar RTools
Después de instalar las bibliotecas (un buen amigo me comentó que la traducción de library es biblioteca) entre ellas (rmarkdown y reticulate).
Nuevamente se define el directorio donde esta instalado el Python en la partición D:\ de nuestro ejemplo.
Se vuelve a correr Python del conjunto de instrucciones base sin problema, pero nuevamente al querer instalar los módulos manda lo siguiente:
> reticulate::py_install('matplotlib')
Using virtual environment
"~/.virtualenvs/r-reticulate" ...Error: invalid version specification ‘’
Además: Aviso:
In system2(python, c("-c", shQuote(command)), stdout = TRUE, stderr = TRUE) :
el comando ejecutado
'"D:/tu_usuario/Documents/.virtualenvs/r-reticulate/Scripts/python.exe" -c
"import sys; import pip; sys.stdout.write(pip.__version__)"'
tiene el estatus 103
Ahora recurrimos al chatGPT - ¿será que el gallo es pro-yanqui? - :) y esta IA sugirió lo siguiente:
# 2.1 Elimina el entorno virtual corrupto
library(reticulate)
# 2.2 (Opcional) Indica un Python conocido; si no tienes, pasa al paso 3 (Miniconda)
reticulate::virtualenv_remove("r-reticulate", confirm = FALSE)
# Ajusta la ruta si tu Python está en otra carpeta:
# py <- "C:/Users/tu_usuario/AppData/Local/Programs/Python/Python311/python.exe"
# 2.3 Crea de nuevo el entorno (sin ruta usa tu Python por defecto si existe)
reticulate::virtualenv_create("r-reticulate")
# 2.4 Instala herramientas básicas reticulate::py_install(c("pip", "setuptools", "wheel"), envname = "r-reticulate", pip = TRUE)
La teoría de modificar el paso 3, fue que ya que no se identifica la ruta de Python (reticulate::virtualenv_create("r-reticulate"/*, python = py*/)) como lo documenta la IA, esto debido a que previamente se uso el comando reticulate::use_python("ruta").
No fue posible capturar los datos de la consola pero parece que el paso 2.4 ya se hizo en automático al crear el nuevo entorno virtual de Python.
Concluimos este artículo mostrando que ya se despliega el RMarkdown con el código de Python insertado.
Y con esto se puede observar que ya se genera el documento PDF.
Hasta el siguiente artículo.
Miguel Araujo - con colaboración de Daniel Lara.

Comentarios
Publicar un comentario