Muchas publicaciones sobre diferentes aspectos de esta pregunta, pero no he visto una publicación que lo integre todo.Mejores prácticas para la implementación de Python: varias versiones, ubicaciones de instalación estándar, herramientas de empaquetado, etc.
Primera afirmación subjetiva: parece que la simplicidad que experimentamos cuando trabajamos con el lenguaje Python se hace pedazos cuando nos movemos fuera del intérprete y empezamos a lidiar con problemas de implementación. ¿Cuál es la mejor manera de tener múltiples versiones de Python en la misma máquina? ¿Dónde se deben instalar los paquetes? Disutils vs. setuptools vs. pip, etc. Parece que el Zen de Python está siendo maltratado cuando se trata de despliegue. Estoy sintiendo ecos misteriosos de la experiencia "DLL hell" en Windows.
¿Los expertos están de acuerdo en algún grado de mejores prácticas en estas cuestiones?
¿Te ejecutar varias versiones de Python en el mismo equipo? ¿Cómo se puede confiar en que pueden coexistir? ¿Y la versión más reciente no rompe las suposiciones de otros procesos que se basan en la versión anterior (scripts proporcionados por el proveedor del sistema operativo, por ejemplo)? ¿Esto es seguro? ¿Virtualenv es suficiente?
¿Cuáles son las mejores opciones para las ubicaciones de los diferentes componentes del entorno de Python (incluidos los paquetes de terceros) en el sistema de archivos local? ¿Existe una correspondencia estricta o aproximada entre ubicaciones para muchas versiones diferentes de Unixy y Windows OS en las que se puede confiar?
y la esquina más oscuro es del pantano - lo que instalar herramientas utiliza (setuptools, distutils, pip etc.) y qué juegan bien con sus opciones Re: ubicaciones de archivos, entornos virtuales de Python, el recorrido de Python etc.
Suenan preguntas difíciles. Tengo la esperanza de que los Pythonistas experimentados puedan haber definido un enfoque canónico (o dos) para estos desafíos. Cualquier enfoque que "se mantenga unido" como un sistema que se puede usar con confianza (sintiéndose menos como herramientas separadas y no relacionadas) sería muy útil.
Creo que esta pregunta es la definición de demasiado amplio. – agf
Desde que hice esta pregunta, me he convertido en un seguidor de 'virtualenvwrapper', ya que simplifica muchos de los problemas que planteé. Todavía hay problemas extraños con cada herramienta de distribución de variante, pero tener un entorno de Python protegido de muros que se puede conectar y desconectar rápidamente ayuda mucho. –