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
Publicar un comentario