Pregunta

¿Alguien puede explicar cómo los directorios de información de huevo están vinculados a sus respectivos módulos? Por ejemplo, tengo lo siguiente:

/usr/local/lib/python2.5/site-packages/quodlibet/
/usr/local/lib/python2.5/site-packages/quodlibet-2.0.egg-info/

Supongo que el directorio egg-info es hacer que el módulo correspondiente sea visible para setuptools (easy_install), ¿verdad? Si es así, ¿de qué manera setuptools vincula el directorio de información de huevo al directorio del módulo?

Suponiendo que estoy en el camino correcto, y por ejemplo ... Si quisiera que un paquete existente fuera visible para setuptools, podría simplemente vincular el directorio del módulo y el directorio egg-info a ¿El directorio de paquetes de sitio? Habría intentado esto solo, pero no estoy seguro de cómo probar si el paquete es visible para setuptools. Puntos de bonificación si también puedes decirme cómo probar esto :)

La razón principal por la que estoy tratando de entender todo esto es porque me gustaría vincular algunos de mis módulos en paquetes de sitio para poder hacer cambios en ellos y tener los cambios visibles en los scripts que los usan sin tener para reinstalar el huevo desde PyPI después de cada cambio.

¿Fue útil?

Solución

Los directorios .egg-info solo se crean si se usó --single-version-externamente administrado para instalar el huevo. " Normalmente " ;, instalar un huevo crearía un solo directorio (o archivo zip), que contiene tanto el código como los metadatos.

pkg_resources (que es la biblioteca que lee los metadatos) tiene una función require que se puede usar para solicitar una versión específica del paquete. Para " estilo antiguo " ;, importaciones regulares, easy_install corta un archivo .pth para obtener el directorio de egg en sys.path. Para --single-version-externamente administrado, este hacking no es necesario, porque solo se instalará una única versión (por la infraestructura de pacakging del sistema, por ejemplo, rpm o dpkg). La información del huevo aún se incluye, para las aplicaciones que usan require (o cualquiera de los otros mecanismos de enlace pkg_resources).

Si desea instalar un paquete por enlace rígido, le recomiendo usar " setup.py develop " ;. Este es un comando de setuptools que no instala realmente el huevo, pero lo hace disponible en todo el sitio. Para hacerlo, crea un archivo de enlace de huevo para que pkg_resources pueda encontrarlo y manipule un archivo .pth, para que la importación normal pueda encontrarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top