Aunque la entrada previa no pretendía convertirse en una serie, me temo que debo extender su alcance con una segunda entrega. Al margen del título, esta serie nada tiene que ver con otra de la que recientemente he escrito y cuyo título puede sugerir cierta hermandad.
Quienes hacen uso de Python entenderán a qué me refiero en lo que expondré sobre la obsolescencia del material de aprendizaje, pero espero que esta explicación sea lo más clara posible para que otros también aprecien el problema. Un problema que, además, no dudo en encontrar en otros entornos. No se trata de algo limitado al software.

Resulta particularmente frustrante la acelerada caducidad de mucho de lo que se expone en artículos, libros y textos en Internet sobre toda la tecnología que se elabora alrededor de Python. Ciertamente, Python se viene actualizando año con año1 y cambios o ajustes son esperados en cada nueva liberación.
Fuente: ver referencia 1.
Aunque esta evolución es controlada y en ella se busca mantener una determinada compatibilidad durante un tiempo con las características que van cambiando, eliminándose o agregándose. Es imposible evitar problemas y bien podemos decir que ésta es una variable de este asunto.
Sin embargo, hay muchas variables más. Éstas las podemos identificar en diversas categorías, siendo una de ellas la del hardware relacionada con cómputo y comunicaciones, multiplicada por cada elemento de esa categoría. A esto debemos sumar una categoría más amplia relacionada con el software, que va desde el sistema operativo hasta software de terceros, pasando por bibliotecas y utilidades. Las bibliotecas son el factor de mayor magnitud en el impacto de sus cambios y dependencias con entornos y otras bibliotecas, lo que magnifica el problema en varios grados de magnitud.
Esta entrada surgió por una frustrante experiencia con un tutorial de apenas un año de vida que me interesó seguir y que me llevó a experimentar un problema que me hizo recorrer varias opiniones, alternativas y troubleshooting, y en el que cada posible solución no hacía más que destapar otro problema.
Seguro que no soy el primero ni seré el último en notarlo, el fenómeno dentro del que se ubica esto ya ha sido estudiado y, debido a la particularidad de enfoques, recibe varios nombres. Esto lo dejo para un post más ad hoc. Por lo pronto, estos son algunas ideas para minimizar el impacto de un envejecimiento u obsolescencia.
- Por supuesto, para el caso de Python, lo primero es dejar constancia del entorno extrayendo la lista de bibliotecas usadas y ssus versiones, algo que fácilmente se logra con el ya famoso:
$ pip freeze > requirements.txt - Similarmente, en las libretas Jupyter, puede ser bueno dejar celdas con comandos de instalación de alguna o todas las bibliotecas. Como:
! pip install pandas
o
! pip install numpy –quiet
La opción, que puede ser útil para evitar todo el desplegado de la instalación de una biblioteca, pero puede enmascarar errores, por lo que la recomendación es usarla cuando se tiene la seguridad sobre la instalación y siempre dejar una nota al respecto para removerla si hay que hacer troubleshooting.
Las celdas con estos comandos pueden ser dejadas como tipo «raw» para que sirvan de documentación y no se ejecuten a menos que quien recibe o usa la libreta así lo desee. - Si se usan libretas Jupyter o similares (Colab, Databricks) conviene dejar ciertas celdas al inicio que muestren las versiones de lo que se considere más importante, por ejemplo:
! python --version
oimport pandas as pd
pd.__version__
oimport numpy
numpy.__version__
Aunque esto pudiera parecer más adecuado para un conjunto de piezas de software en un proceso de desarrollo, igual aplica para un tutorial, artículo o entrada en un blog. Evitará frustraciones como la que dio origen a este post, y permitirá que este conocimiento envejezca adecuadamente marcando su lugar en el tiempo.
Referencias
- «Status of Python versions«, Python Developer’s Guide, web. Visited: 2025.07.20. URL: https://devguide.python.org/versions/.
- Peter Ebdon, «Why you should upgrade your outdated software systems«, achorda.com, blog. Published: 2019.11.27; 2025.07.20. URL: https://achorda.com/blog/why-you-should-upgrade-your-outdated-software-systems/.
- Elena Georgescu, «Software Rot and Cybersecurity: Why Code Degradation Is Crucial to Business Safety«, Heimdal Security, web. Updated: 2022.06.17; visited: 2025.07.20. URL: https://heimdalsecurity.com/blog/software-rot/.
- «Software rot«, Wikipedia, web. Visited: 2025.07.20. URL: https://en.wikipedia.org/wiki/Software_rot.

