Ir al contenido principal

El problema del gallo - otra vertiente de usar Python en RMarkdown con Posit RStudio

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

Entradas populares de este blog

Posit Cloud - como instalar librerías de Python en el entorno de R

 Ahora que estamos tomando una maestría buscando que siga "girando la ardilla" por unos años más en la materia de "Cómputo Estadístico" nos ha sugerido usar la versión gratuita de Posit en la nube. En su página definen este producto como "es una solución basada en la nube que permite acceder al poderoso conjunto de herramientas de ciencia de datos de Posit directamente en el navegador web  - sin requerir instalación o configuraciones complejas". Para los usuarios que han utilizado Posit RStudio en primera instancia verán el entorno muy similar a Posit Cloud con algunas pequeñas diferencias, para empezar necesitamos un usuario o contraseña aunque es posible autenticarse usando alguna cuenta existente como es el caso de Google. Con el tiempo y trabajando en desarrollo de software, vamos entendiendo que quizás el nombre queda muy grande a los pequeños ejemplos, pero es muy recomendable el uso de proyectos siempre. A continuación vemos el entorno Posit Clo...

La librería openxlsx

En el Instituto se utiliza como herramienta de trabajo institucional la suite de ofimática MS Office que ofrece un precio asequible aunque lo actual en el mundo del software es el esquema de suscripciones el que casi se ha convertido en el común de las empresas gigantes de las tecnologías de la información. Es por ello que si bien en un principio que se usaban las bibliotecas XLConnectJars   y XLConnect, al tratar de bajarlas e instalarlas se descubrió - en aquel entonces - que estaban obsoletas. Es por ello que se volteo a la que revisaremos superficialmente en este artículo. Lo primero como siempre es descargar la librería openxlsx que se puede hacer desde el mismo Posit RStudio. Vamos a recrear un cuadro existente en el sitio del Instituto que debido a la crisis sanitaria iniciada en 2020 cobra una relevancia muy importante: "Las principales causas de muerte" que de forma anecdótica   fue la primera aplicación en la cual me pidieron que participara, un programa escri...

R 4.5 vs R 4.4.3

Cuando comparto con mis colegas, sobre todo de trabajo que es mi nicho profesional, acerca de porque tener las últimas versiones del software y que replico sobre todo por dos vertientes: mejor desempeño y funcionalidad del software, y la seguridad que pareciera que las empresas de software recomiendan los mismo o algo cercano a esto. Por ejemplo, veamos lo que nos dice Oracle (dueño de Java) acerca de su versión 8 del Java SE.   En la tabla de la página de Oracle podemos observar las fechas en los cuales ya no habrá soporte para ciertas versiones de Java. En este breve artículo veremos en el caso del interprete de R como se desempeña en una versión con respecto a la más reciente. Los puestos de trabajo que se registran por los patrones en el IMSS ha sido una cifra que muestra el avance o retroceso de como se encuentra el empleo en nuestro país, en este caso diremos que en el sector formal. Los microdatos oscilan arriba de los 20 millones y para su procesamiento es necesario o divi...