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

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 1a Parte

En nuestro Instituto durante años se ha utilizado diversas herramientas para el procesamiento de información de acuerdo a las necesidades y también al expertise del personal. En tiempos de austeridad republicana las herramientas de software libre sin duda tomarán más importancia en las áreas de estadística del Instituto y si agregamos que cuentan con la venía de nuestro emperador hemos empezado a transitar por este camino. En su sitio oficial  se define como "R es un software gratuito para cómputo estadístico y gráficos. Compila y se ejecuta en múltiples plataformas de UNIX, Windows y MacOS". Llevo un par de cursos referentes a este lenguaje de programación que de hecho en la clasificación de los lenguajes en un principio era catalogado como funcional, ahora si revisamos Wikipedia aparece como multi-paradigma, aunque los principios de programación son los mismos tiene características muy especiales que intuyo vienen del calculo vectorial.