🐍 Python Quick Setup Guía de Buenas Prácticas
← Inicio

⭐ Guía de Buenas Prácticas

Principios y técnicas para desarrollar Python de manera profesional y eficiente

🐍 ¿Por qué Python puro en lugar de Anaconda?

Aunque Anaconda es una excelente herramienta para ciencia de datos, Python puro ofrece ventajas significativas para el desarrollo general:

✅ Python Puro - Ventajas

  • Ligereza: Instalación mínima (~50MB vs ~3GB)
  • Control total: Gestión precisa de dependencias
  • Compatibilidad: Funciona en cualquier entorno
  • Aprendizaje: Entiendes mejor el ecosistema Python
  • Producción: Despliegues más simples y predecibles

⚠️ Anaconda - Consideraciones

  • Tamaño: Instalación muy pesada
  • Complejidad: Múltiples gestores de paquetes
  • Conflictos: Puede interferir con otras instalaciones
  • Dependencia: Vinculación a un ecosistema específico
  • Overhead: Recursos innecesarios para desarrollo simple

🎯 Recomendación

Usa Python puro para desarrollo general y web. Reserva Anaconda solo para proyectos específicos de ciencia de datos donde realmente necesites sus herramientas especializadas.

🏆 Las 5 Reglas de Oro

Cinco principios esenciales para desarrollar Python de manera profesional:

1️⃣ Un proyecto = Un entorno virtual

Nunca instales paquetes globalmente. Cada proyecto necesita su propio entorno aislado.

2️⃣ Requirements.txt siempre actualizado

Es tu "receta" para que otros repliquen tu trabajo. Sin esto, no hay colaboración posible.

3️⃣ Documenta todo

Comenta lo complicado, usa nombres descriptivos, explica el "por qué" no solo el "qué".

4️⃣ Código organizado

Una función = Una tarea. Separa datos, código y resultados en carpetas lógicas.

5️⃣ Comparte correctamente

Incluye requirements.txt, escribe instrucciones claras y prueba que funciona en otro equipo.

🔄 Consistencia de Versiones - La Clave del Trabajo en Equipo

Una de las frustraciones más comunes en equipos de desarrollo es el famoso: "Pero si en mi máquina funciona..."

❌ El Problema Real

Imagina este escenario común en equipos:

😱 Sin Estandarización

  • María: Python 3.12.4 (instaló hace 2 semanas)
  • Juan: Python 3.12.7 (instaló ayer)
  • Ana: Python 3.11.9 (máquina antigua)
  • Servidor Producción: Python 3.12.5 🤯

Resultado: El código funciona diferente en cada máquina. ¡Caos total!

✅ Con Estandarización

  • María: Python 3.11.9 ✅
  • Juan: Python 3.11.9 ✅
  • Ana: Python 3.11.9 ✅
  • Servidor Producción: Python 3.11.9 ✅

Resultado: Todo funciona exactamente igual en todos lados. ¡Paz mental!

🎯 La Solución: Versiones Fijas

Python Quick Setup usa versiones fijas que solo cambian cuando TÚ decides actualizarlas. Esto garantiza que:

👥 Mismo Entorno = Cero Sorpresas

Todos en el equipo trabajan con la misma versión exacta. Si funciona en tu máquina, funciona en todas.

📅 Control Total de Actualizaciones

Tú decides cuándo actualizar, no Python.org. Planificas, pruebas y actualizas cuando el equipo esté listo.

🔒 Estabilidad en Producción

Tu servidor nunca se actualiza automáticamente y rompe todo en un viernes a las 6pm.

📝 Documentación Automática

Cada proyecto sabe exactamente qué versión de Python necesita. Sin adivinanzas.

💡 ¿Qué Versión Usar?

🏆 Para la Mayoría: Python 3.11.9

Por qué es la recomendada:

  • Perfecta balance de estabilidad y características modernas
  • Soportada hasta Octubre 2027 (3 años más)
  • Usada por el 80% de equipos profesionales
  • Todas las librerías populares la soportan

🚀 Para Proyectos Nuevos: Python 3.12.7

Cuándo elegirla:

  • Quieres las últimas mejoras de rendimiento
  • Proyecto nuevo sin código legacy
  • Soportada hasta Octubre 2028 (4 años más)
  • Mejoras de velocidad del 5-10%

⚠️ Evita Python 3.13.0 para Producción

Es la versión experimental. Úsala solo para probar nuevas características, no para proyectos serios. Muchas librerías todavía no la soportan completamente.

📚 Buenas Prácticas para Equipos

1

Acuerda la Versión

Todo el equipo usa la misma versión. Sin excepciones. Documéntala en el README del proyecto.

2

Revisa Cada 6 Meses

En abril y octubre, evalúa si necesitas actualizar. Solo hazlo si hay razones de seguridad o nuevas características críticas.

3

Prueba Antes de Desplegar

Nunca actualices directo en producción. Prueba primero en desarrollo, luego en staging, finalmente en producción.

4

Actualiza en Equipo

Todos actualizan el mismo día. Coordinen para evitar tener diferentes versiones durante días.

🔗 ¿Quieres los Detalles Técnicos?

Si necesitas saber cómo actualizar versiones manualmente, configurar despliegues empresariales, o entender la política completa de versiones, consulta la Guía Técnica de Política de Versiones.

💎 Regla de Oro

Consistencia > Novedad. Es mejor que todo el equipo use Python 3.11 que tener la mitad en 3.11, un cuarto en 3.12 y otro cuarto en 3.13. La estandarización elimina el 90% de los problemas de "funciona en mi máquina".

🚀 Scripts de Automatización

Los templates incluyen scripts que automatizan todo el flujo de trabajo:

🎛️ manager.ps1

Gestión completa del proyecto: crear entorno, instalar paquetes, ejecutar código, guardar dependencias.

.\manager.ps1

⚡ terminal.ps1

Activación rápida del entorno para sesiones de desarrollo directo en terminal.

.\terminal.ps1

🔄 Flujo Diario

Inicio: .\manager.ps1 para setup automático
Desarrollo: .\terminal.ps1 para sesiones rápidas
Compartir: Todo queda en requirements.txt automáticamente

📝 Convenciones de Nomenclatura

Las convenciones correctas hacen que tu código sea profesional y fácil de mantener:

🎯 Reglas Básicas para Nombres

📝 Nombres sencillos y claros

Usa nombres que expliquen qué hace. calcular_promedio es mejor que calc.

🔗 Sin espacios

Usa guiones bajos en lugar de espacios. mi_variable no mi variable.

🔡 En minúsculas

Todo en letras minúsculas para consistencia. archivo_datos.py.

🌍 Sin tildes

Evita acentos y caracteres especiales. analisis no análisis.

✅ Ejemplos Prácticos

✅ Correcto

# Variables y funciones: snake_case nombre_usuario = "Juan" lista_productos = [] precio_total = 100.50 def calcular_promedio(numeros): return sum(numeros) / len(numeros) def obtener_datos_usuario(): pass # Archivos de proyecto analisis_ventas/ procesar_datos.py config_database.py

❌ Evitar

# NO uses camelCase para variables nombreUsuario = "Juan" listaProductos = [] precioTotal = 100.50 def CalcularPromedio(numeros): pass def obtenerDatosUsuario(): pass # NO uses espacios o tildes Análisis de Ventas/ Procesar Datos.py configuración_bd.py

💡 Tip para Principiantes

Cada vez que notes que estás copiando y pegando código, es momento de crear una función helper! Mantenlo organizado en el archivo helpers/helpers.py.

🗂️ Estructura del Proyecto

Una estructura bien organizada facilita el desarrollo, mantenimiento y colaboración:

📁 Template Básico - Para Principiantes

mi_proyecto/ ├── 📄 main.py # Tu código principal ├── 📄 README.md # Documentación del proyecto ├── 📄 requirements.txt # Lista de paquetes necesarios ├── 📄 manager.ps1 # Gestor principal del proyecto ├── 📄 terminal.ps1 # Activador rápido de entorno ├── 📁 helpers/ # Funciones reutilizables │ └── 📄 helpers.py # Funciones comunes └── 📁 venv/ # Entorno virtual (no subir a Git)

🏢 Template Completo - Para Proyectos Profesionales

mi_proyecto/ ├── 📄 main.py # Punto de entrada principal ├── 📄 README.md # Documentación completa ├── 📄 requirements.txt # Dependencias del proyecto ├── 📄 manager.ps1 # Gestor completo del proyecto ├── 📄 terminal.ps1 # Activador rápido del entorno ├── 📁 data/ # Datos del proyecto │ ├── 📁 insumos/ # Archivos originales │ ├── 📁 resultados/ # Archivos procesados │ └── 📁 logs/ # Registros de ejecución ├── 📁 notebooks/ # Análisis exploratorio ├── 📁 helpers/ # Módulos reutilizables │ ├── 📄 data_processor.py │ ├── 📄 file_manager.py │ └── 📄 utilities.py └── 📁 venv/ # Entorno virtual (no subir)

💡 ¿Cuál Template Usar?

🎓 Template Básico

  • Estás empezando con Python
  • Proyectos simples y scripts
  • Quieres aprender las bases
  • Proyectos personales pequeños

🏢 Template Completo

  • Análisis de datos profesional
  • Colaboración en equipo
  • Manejo de múltiples archivos
  • Notebooks de Jupyter

🚀 Tip de Crecimiento

Empieza con el Template Básico y cuando te sientas cómodo, migra al Completo. Ambos usan los mismos scripts de automatización, facilitando la transición.

📦 Requirements.txt - La Clave de la Colaboración

El archivo requirements.txt es fundamental para la reproducibilidad del proyecto y con el manager.ps1 su gestión es completamente automática:

🎛️ Gestión Automática con manager.ps1:

✅ Flujo Moderno

# 1. Instalar paquetes (opción 3 del manager) .\manager.ps1 → 3 # 2. Guardar automáticamente (opción 4 del manager) .\manager.ps1 → 4 # ¡Requirements.txt se actualiza solo!

❌ Flujo Manual (Obsoleto)

# Método tradicional (ya no necesario) pip install requests pip freeze > requirements.txt # Problemas: # - Activar entorno manualmente # - Escribir comando # - Propenso a errores manuales

🔄 Ventajas del Manager:

🎯 Precisión Automática

Solo guarda los paquetes que realmente instalaste, no sus sub-dependencias.

📋 Versiones Inteligentes

Genera rangos de versión compatibles automáticamente para mayor flexibilidad.

🛡️ Sin Errores

Elimina errores humanos y garantiza un requirements.txt limpio y funcional.

⚡ Flujo Rápido

Instalar → Guardar → Compartir en segundos, sin comandos complejos.

💡 Regla de Oro

Nunca edites requirements.txt manualmente. Usa siempre el manager.ps1 (opción 4) para actualizarlo. Esto garantiza consistencia y evita problemas de dependencias.

🔄 Flujo de Trabajo

Flujo diario simplificado para máxima productividad:

🌅 Al Empezar

# Activar entorno .\manager.ps1 # O activación rápida .\terminal.ps1

💼 Durante el Trabajo

# Desarrollar → Probar → Documentar python main.py # Instalar algo nuevo .\manager.ps1 → Opción 3

💡 Regla de Oro del Flujo

1. Usa manager.ps1 para setup y paquetes • 2. Usa terminal.ps1 para trabajo rápido • 3. Guarda dependencias con opción 4 del gestor

📚 Documentación y Guía de Apoyo

Una buena documentación es fundamental para cualquier proyecto exitoso. Los templates incluyen archivos README prediseñados para diferentes niveles:

📄 Templates de Documentación Incluidos:

📝 README_basic.md

Para proyectos simples y principiantes. Incluye lo esencial: descripción, instalación rápida con manager.ps1, y uso básico.

🏢 README_complex.md

Para proyectos profesionales. Incluye arquitectura, contribuciones, testing, deployment y documentación técnica completa.

📝 Sobre la Sintaxis Markdown:

🌐 Lenguaje Universal

Markdown es estándar en GitHub, GitLab, y plataformas de desarrollo. Aprenderlo te beneficiará en cualquier proyecto.

📚 Recursos de Apoyo

Guías: GitHub Markdown Guide, Markdown Tutorial
Editores: Typora, MarkText, o VS Code con preview

⚡ Sintaxis Simple

# Título, **negrita**, `código`, - lista. ¡Es más fácil de lo que parece!

📄 Alternativa Word

Si prefieres, puedes usar Word (.docx) para documentar. Lo importante es documentar, no el formato.

🎯 ¿Por qué es tan Importante Documentar?

💡 La Documentación es tu Mejor Inversión

Para ti: En 6 meses no recordarás cómo funciona tu código
Para otros: Sin documentación, tu proyecto es inutilizable
Para equipos: Acelera la integración de nuevos miembros
Para clientes: Demuestra profesionalismo y calidad

✅ Proyecto Bien Documentado

  • Cualquiera puede usarlo en 5 minutos
  • Instrucciones claras de instalación
  • Ejemplos de uso prácticos
  • Información de contacto y soporte

❌ Proyecto Sin Documentación

  • Solo funciona en tu máquina
  • Nadie sabe cómo instalarlo
  • Código incomprensible para otros
  • Abandono inevitable del proyecto

🆘 Solución de Problemas

Problemas comunes que puedes encontrar y sus soluciones paso a paso:

🛠️ Problemas con Scripts PowerShell

❌ Error: "No se puede ejecutar scripts"
Solución: Ejecuta como usuario normal (no admin):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

🐍 Problemas con Python

❌ Error: "Python no reconocido"
Solución:
• Reinstala Python desde python.org
• Marca "Add Python to PATH" durante instalación
• Reinicia la terminal
❌ Error: "Módulo no encontrado"
Solución:
• Asegúrate de que el entorno esté activado (.venv)
• Usa opción 3 del gestor para instalar
• Guarda en requirements con opción 4

🔧 Problemas con Entornos Virtuales

❌ El entorno no se activa
Solución:
• Ejecuta .\manager.ps1 opción 1 para recrear
• Verifica que existe la carpeta venv o .venv
❌ Entorno virtual corrupto
Solución:
• Elimina la carpeta del entorno: rmdir /s venv
• Usa .\manager.ps1 para recrear automáticamente

📚 Problemas Avanzados

❌ Problemas con Jupyter Notebooks
Solución:
• Instala kernel específico: python -m ipykernel install --user --name=venv
• En Jupyter: Kernel > Change kernel > venv
❌ Problemas de memoria con datos grandes
Solución:
• Procesa datos en chunks con pandas
• Usa dtype específicos
• Considera dask para datasets muy grandes

💡 Tip de Oro

Los scripts manager.ps1 incluyen validaciones automáticas que previenen la mayoría de estos problemas. Úsalos siempre que sea posible.

📚 Recursos para Aprender Python

Recursos organizados por nivel y especialización para acelerar tu aprendizaje:

📖 Documentación Oficial

🐍 Python.org - Tutorial oficial

La guía oficial completa. Perfecta para entender los fundamentos del lenguaje.

📚 Python.org - Referencia

Documentación técnica detallada. Útil cuando necesitas información específica.

🎓 Sitios de Aprendizaje Recomendados

🔥 Real Python

Tutoriales prácticos y proyectos. Excelente para aprender con ejemplos reales.

💻 GeeksforGeeks Python

Conceptos y ejemplos detallados. Perfecto para reforzar conceptos específicos.

🚀 Automate the Boring Stuff

Python práctico para automatizar tareas cotidianas. Ideal para principiantes.

📝 W3Schools Python

Curso interactivo básico con ejercicios. Excelente para empezar desde cero.

📊 Recursos para Análisis de Datos

🐼 Pandas User Guide

Manipulación de datos con DataFrames. Esencial para análisis de datos.

🔢 NumPy Documentation

Computación numérica eficiente. Base para muchas librerías científicas.

📈 Matplotlib Tutorials

Gráficos básicos y visualización. Fundamental para presentar datos.

🎨 Seaborn Gallery

Visualización estadística elegante. Perfecto para gráficos profesionales.

🎥 Canales de YouTube en Español

🎬 Para Principiantes

  • MoureDev: Programación general y buenas prácticas
  • Código Facilito: Tutoriales Python paso a paso
  • Platzi: Cursos completos estructurados

📊 Para Análisis de Datos

  • Dot CSV: Data Science y Machine Learning
  • Ringa Tech: Análisis de datos práctico
  • Sociedad de Datos: Estadística y Python

🎯 Tip de Estudio

Para Principiantes: Empieza con W3Schools + MoureDev
Para Análisis: Pandas User Guide + Dot CSV
Para Profesionales: Real Python + documentación oficial

⚖️ Licencia y Soporte

📄 Licencia MIT

Este proyecto está licenciado bajo la Licencia MIT, lo que significa que es completamente gratuito para uso personal y comercial.

Desarrollado por: Rafael Medina con asistencia de Claude (Anthropic) para crear documentación profesional y mejores prácticas.

🤝 Soporte:

  • 📧 Reportes de bugs y sugerencias via Issues de GitHub
  • 🌟 ¡Dale una estrella al proyecto si te resulta útil!
# Clonar el repositorio git clone https://github.com/rafaelmedina435/python-quicksetup.git