Ir al contenido principal

RMarkdown - Python para usuarios de Posit RStudio

 Al escribir el post anterior pareciera que sería la misma lógica con la versión de escritorio de Posit RStudio, sin embargo al querer ejecutar un chunk de Python en un archivo de RMarkdown, manda que se tienen que actualizar los paquetes, descarga algunas cosas pero al final manda el siguiente mensaje:

Show in New Window Error in system2(uv, c("python list", "--all-versions", "--color never", : '"C:\Users\mi_nombre_de_usuario\AppData\Local\R\cache\R\reticulate\uv\bin\uv.exe"' not found Error: Installation of Python not found, Python bindings not loaded. See the Python "Order of Discovery" here: https://rstudio.github.io/reticulate/articles/versions.html#order-of-discovery.

La IA de Google aconseja  instalar uv pero el paquete reticulate no tiene ese método.

Cuando se pensaba en instalar todo el que yo le llamo ecosistema del lenguaje de programación R se trató con esta última receta, descargar Python e instalarlo en una unidad diferente a C:\ para "librar" o "intentar librar" las directivas de seguridad, por lo que se descargó la última versión de Python que a la fecha de escribir este artículo es la 3.13.17 y se instaló en un directorio de la partición D:\

El asistente es sencillo y te da la opción me modificar las variables de entorno.

Nuevamente vamos a R y se da la siguiente instrucción:


En el método use_python() se pone la ruta donde se instaló Python, que en nuestro caso es D:\Soft\Py ahora la consola de Python notifica que versión se está usando de Python y ejecuta el par de líneas que tiene el chunk.

Vamos ahora a correr código Python pero utilizando "módulos o paquetes" extras.


Aquí pasa como Posit Cloud, avisa que no se encuentra el módulo (en este caso matplotlib y numpy) como se ve en el siguiente mensaje:

Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\tu_usuario\AppData\Local\R\win-library\4.5\reticulate\python\rpytools\loader.py", line 122, in _find_and_load_hook return _run_hook(name, _hook) File "C:\Users\tu_usuario\AppData\Local\R\win-library\4.5\reticulate\python\rpytools\loader.py", line 96, in _run_hook module = hook() File "C:\Users\tu_usuario\AppData\Local\R\win-library\4.5\reticulate\python\rpytools\loader.py", line 120, in _hook return _find_and_load(name, import_) File "C:\Users\tu_usuario\AppData\Local\R\win-library\4.5\reticulate\python\rpytools\loader.py", line 122, in _find_and_load_hook return _run_hook(name, _hook) File "C:\Users\tu_usuario\AppData\Local\R\win-library\4.5\reticulate\python\rpytools\loader.py", line 96, in _run_hook module = hook() File "C:\Users\tu_usuario\AppData\Local\R\win-library\4.5\reticulate\python\rpytools\loader.py", line 120, in _hook return _find_and_load(name, import_) ModuleNotFoundError: No module named 'matplotlib'

Ahora vamos instalar las librerías o módulos:

reticulate::py_install("matplotlib")

Using Python: D:/Soft/Py/python.exe

Creating virtual environment "~/.virtualenvs/r-reticulate" ... 

+ "D:/Soft/Py/python.exe" -m venv "C:/Users/tu_usuario/OneDrive/Documents/.virtualenvs/r-reticulate"

Done!

Installing packages: pip, wheel, setuptools

+ "C:/Users/tu_usuario/OneDrive - Documents/.virtualenvs/r-reticulate/Scripts/python.exe" -m pip install --upgrade pip wheel setuptools

Requirement already satisfied: pip in c:\users\tu_usuario\onedri~1\docume~1\virtua~2\r-reti~1\lib\site-packages (25.2)

Collecting wheel

  Downloading wheel-0.45.1-py3-none-any.whl.metadata (2.3 kB)

Collecting setuptools

  Downloading setuptools-80.9.0-py3-none-any.whl.metadata (6.6 kB)

Downloading wheel-0.45.1-py3-none-any.whl (72 kB)

Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB)

   ---------------------------------------- 1.2/1.2 MB 2.9 MB/s  0:00:00

Installing collected packages: wheel, setuptools

Successfully installed setuptools-80.9.0 wheel-0.45.1

Virtual environment '~/.virtualenvs/r-reticulate' successfully created.

Using virtual environment "~/.virtualenvs/r-reticulate" ...

+ "C:/Users/tu_usuario/OneDrive/Documents/.virtualenvs/r-reticulate/Scripts/python.exe" -m

pip install --upgrade --no-user matplotlib

Collecting matplotlib

  Downloading matplotlib-3.10.5-cp313-cp313-win_amd64.whl.metadata (11 kB)

Collecting contourpy>=1.0.1 (from matplotlib)

  Downloading contourpy-1.3.3-cp313-cp313-win_amd64.whl.metadata (5.5 kB)

Collecting cycler>=0.10 (from matplotlib)

  Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)

Collecting fonttools>=4.22.0 (from matplotlib)

  Downloading fonttools-4.59.2-cp313-cp313-win_amd64.whl.metadata (111 kB)

Collecting kiwisolver>=1.3.1 (from matplotlib)

  Downloading kiwisolver-1.4.9-cp313-cp313-win_amd64.whl.metadata (6.4 kB)

Collecting numpy>=1.23 (from matplotlib)

  Downloading numpy-2.3.2-cp313-cp313-win_amd64.whl.metadata (60 kB)

Collecting packaging>=20.0 (from matplotlib)

  Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB)

Collecting pillow>=8 (from matplotlib)

  Downloading pillow-11.3.0-cp313-cp313-win_amd64.whl.metadata (9.2 kB)

Collecting pyparsing>=2.3.1 (from matplotlib)

  Downloading pyparsing-3.2.3-py3-none-any.whl.metadata (5.0 kB)

Collecting python-dateutil>=2.7 (from matplotlib)

  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)

Collecting six>=1.5 (from python-dateutil>=2.7->matplotlib)

  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)

Downloading matplotlib-3.10.5-cp313-cp313-win_amd64.whl (8.1 MB)

   ---------------------------------------- 8.1/8.1 MB 7.7 MB/s  0:00:01

Downloading contourpy-1.3.3-cp313-cp313-win_amd64.whl (226 kB)

Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)

Downloading fonttools-4.59.2-cp313-cp313-win_amd64.whl (2.3 MB)

   ---------------------------------------- 2.3/2.3 MB 8.6 MB/s  0:00:00

Downloading kiwisolver-1.4.9-cp313-cp313-win_amd64.whl (73 kB)

Downloading numpy-2.3.2-cp313-cp313-win_amd64.whl (12.8 MB)

   ---------------------------------------- 12.8/12.8 MB 4.4 MB/s  0:00:02

Downloading packaging-25.0-py3-none-any.whl (66 kB)

Downloading pillow-11.3.0-cp313-cp313-win_amd64.whl (7.0 MB)

   ---------------------------------------- 7.0/7.0 MB 6.8 MB/s  0:00:01

Downloading pyparsing-3.2.3-py3-none-any.whl (111 kB)

Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)

Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)

Installing collected packages: six, pyparsing, pillow, packaging, numpy, kiwisolver, fonttools, cycler, python-dateutil, contourpy, matplotlib


Successfully installed contourpy-1.3.3 cycler-0.12.1 fonttools-4.59.2 kiwisolver-1.4.9 matplotlib-3.10.5 numpy-2.3.2 packaging-25.0 pillow-11.3.0 pyparsing-3.2.3 python-dateutil-2.9.0.post0 six-1.17.0

Avisos:

1: In file.info(x, extra_cols = FALSE) :

  cannot open file 'C:/Users/tu_usuario/AppData/Local/Microsoft/WindowsApps/python3.exe': El sistema no tiene acceso al archivo

2: In file.info(x, extra_cols = FALSE) :

  cannot open file 'C:/Users/tu_usuario/AppData/Local/Microsoft/WindowsApps/python3.exe': El sistema no tiene acceso al archivo

Se intentó ahora instalar el paquete numpy...

>reticulate::py_install("numpy")

Using virtual environment "~/.virtualenvs/r-reticulate" ...
+ "C:/Users/tu_usuario/OneDrive/Documents/.virtualenvs/r-reticulate/Scripts/python.exe" -m pip install --upgrade --no-user numpyRequirement already satisfied: numpy in c:\users\tu_usuario\onedri~1\docume~1\virtua~2\r-reti~1\lib\site-packages (2.3.2)


 Volvió a fallar la ejecución, pero parece que al reiniciar el entorno de R, por fin ya se genera el archivo en formato pdf.


No ha sido sencillo destrabar este asunto, pero nuevamente son bemoles que tiene el usar software libre.

Hasta el otro artículo porque esta solución no aplica para todas las situaciones.

Miguel Araujo.

Comentarios

Entradas populares de este blog

REDATAM en Ubuntu (Linux)

 En un blog alterno, escribí sobre como migraba un "viejo" Intel i5 al sistema operativo Ubuntu en su versión más actual. Me comunique con mi gran colega Lenin de la CELADE en Chile, después de mucho tiempo, y le pedí me diera un pequeño resumen del "estado del arte" de REDATAM me dijo que todo marchaba bien, y pues ahora creo que tengo que actualizarme en contenedores pues el web server se encuentra ahí. Nos pusimos manos a la obra, el instalable desde la página no tiene ninguna extensión de archivo, asumí que era un ejecutable para Linux, no se si la página sufra ataques constantes ya que después quise volver a descargar sin éxito, la página estaba caida, sin embargo rescate el ejecutable anteriormente descargado. Últimamente primero hago y después documento, ya que con todo y mi compañero Deep,  no todo sale a la primera ni como lo dictan sus sugerencias, sobre todo en Linux y MacOS.  Por lo que, les muestro solo el resultado final de esta primera exploración, im...

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)) a...

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...