Realmente no hay una sola "respuesta" a esta pregunta, pero definitivamente hay algunos conceptos útiles que pueden ayudarlo a tomar una decisión.
La primera pregunta que debe responderse en su caso de uso es "¿Quiero usar el sistema Python?" Si desea usar Python distribuido con su sistema operativo, entonces usar el método de instalación apt-get puede estar bien. Sin embargo, dependiendo del método de distribución del sistema operativo, aún debe hacer algunas preguntas más, como "¿Quiero instalar varias versiones de este paquete?" Si la respuesta es sí, probablemente no sea una buena idea usar algo como apt. Dpkg básicamente descomprimirá un archivo en la raíz del sistema de archivos, por lo que depende del mantenedor del paquete asegurarse de que el paquete se instale de manera segura bajo muy pocas suposiciones. En el caso de la mayoría de los paquetes de Debian, asumiría (alguien puede corregirme aquí) que simplemente descomprimen y proporcionan un paquete de nivel superior.
Por ejemplo, digamos que el paquete es "virtualenv", terminaría con /usr/lib/python2.x/site-packages/virtualenv
. Si lo instala con easy_install
, obtendrá algo como /usr/lib/python2.x/site-packages/virtualenv.egg-link
eso que podría indicar /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
que puede ser un directorio o un huevo comprimido. Pip hace algo similar aunque no usa huevos y en su lugar colocará el paquete de nivel superior directamente en el lib
directorio.
Puede que esté fuera de lugar, pero la cuestión es que cada método tiene en cuenta diferentes necesidades. Esta es la razón por la que herramientas como virtualenv son útiles, ya que le permiten proteger sus bibliotecas de Python de manera que pueda tener cualquier combinación que necesite de bibliotecas y versiones.
Setuptools también permite instalar paquetes como multiversión, lo que significa que no se dule_name.egg-link
crea un solo mes . Para importar esos paquetes, debe usar pkg_resources y la __import__
función.
Volviendo a su pregunta original, si está satisfecho con el sistema python y planea usar virtualenv y pip para construir entornos para diferentes aplicaciones, entonces instalar virtualenv y / o pip a nivel del sistema usando apt-get parece totalmente apropiado. Sin embargo, una advertencia es que si planea actualizar sus distribuciones de Python, eso puede tener un efecto dominó en sus virtualenvs si se vinculó a los paquetes del sitio del sistema.
También debo mencionar que ninguna de estas opciones es intrínsecamente mejor que las demás. Simplemente adoptan diferentes enfoques. Usar la versión del sistema es una forma excelente de instalar aplicaciones Python, pero puede ser una forma muy difícil de desarrollar con Python. Las herramientas de instalación y configuración fáciles son muy convenientes en un mundo sin virtualenv, pero si necesita usar diferentes versiones de la misma biblioteca, entonces también se vuelve bastante difícil de manejar. Pip y virtualenv realmente actúan más como una máquina virtual. En lugar de tener cuidado de instalar las cosas una al lado de la otra, simplemente crea un entorno completamente nuevo. La desventaja aquí es que más de 30 virtualenvs más tarde, es posible que haya usado bastante espacio en disco y desordenado su sistema de archivos.
Como puede ver, con las muchas opciones es difícil decir qué método usar, pero con un poco de investigación sobre sus casos de uso, debería poder encontrar un método que funcione.
ez_setup.py
buscando una "versión ligera" de conseguir pip. Haría lo mismo, pero temo que se rompa en un futuro cercano y me quedaré atascado aquí nuevamente (como siempre lo hago)