2009-12-07 10 views
7
  1. Si tengo un paquete determinado instalado tanto en los paquetes de sitio globales como en el local, ¿qué paquete se importará? ¿Eso funcionará o recibiré un error?
  2. ¿Qué paquetes debo poner en los paquetes de sitio globales y cuáles en el local?

Respuesta

9

La respuesta anterior envuelve la pregunta 1, pero hace caso omiso de la pregunta 2.

La mejor práctica general que he visto para qué paquetes para poner a nivel mundial:

, los paquetes primer núcleo de Python, ya que don' Cambie con problemas incompatibles con versiones anteriores a menos que esté actualizando una versión principal, y querrá que las correcciones de seguridad de una actualización de Python se apliquen automáticamente a sus virtualenvs.

En segundo lugar, los paquetes que son difíciles de instalar con facilidad o de instalar en pip en cada uno de los elementos virtuales pero que no cambian muy a menudo: MySQLdb/psycopg y PIL, por ejemplo.

Casi todo lo demás debe ir en los paquetes de su virtualenv (recomiendo usar los archivos de requisitos pip y virtualenvwrapper para hacer esto mínimamente doloroso y fácil de configurar en otras máquinas).

3

El entorno virtual recientemente creado de forma predeterminada tiene acceso al directorio global de paquetes de sitio, a menos que se haya creado con --no-site-packages. Llamar a easy_install (instalar paquetes nuevos) con cierto entorno activado provocará una sobrescritura local de las ya existentes en los paquetes de sitio globales (similar a la herencia). El entorno usará sus propios paquetes locales, cuando falten, los globales.

+5

* El entorno virtual recién creado de forma predeterminada tiene acceso al directorio global de paquetes de sitio * Esto ya no es cierto. –

Cuestiones relacionadas