Mi empleador tiene un módulo dedicado lo usamos para la unidad interna/prueba del sistema; sin embargo, el autor de este módulo ya no funciona aquí y se me ha pedido que pruebe algunos dispositivos con él.Forzar el uso de python de una versión anterior del módulo (que lo que tengo instalado ahora)
El problema es que pyfoo
requiere una versión antigua de twisted
(v8.2.0) e importa twisted
en 33 archivos diferentes. Intenté ejecutar las pruebas unitarias de pyfoo
en v11.0.0 y ni siquiera veo paquetes TCP SYN . Desafortunadamente, ya tengo twisted v11.0.0 instalado en mi laboratorio servidor Linux y tengo mi propio código que depende de ello.
que han sido tensas cerebro en busca de una forma de evitar esto, pero sólo se puede llegar a las siguientes opciones:
Opción A. Instale una nueva versión de python, instale virtualenv
, y luego instale una versión anterior de twisted
bajo el virtualenv
. Solo ejecute las pruebas que requieren pyfoo
bajo esta nueva versión de python.
Opción B. Edite los 33 archivos con lo siguiente: DIR = '../'; sys.path.insert(0, DIR)
e instale la versión anterior de python en el directorio apropiado debajo de la fuente.
Opción C. Intento de fijar pyfoo
utilizar v11.0.0
¿Hay alguna opción me falta? ¿Hay una forma más elegante de resolver este problema, además de la Opción A, arriba?
notas finales:
- Digamos que es
pyfoo
para bien del argumento - Las pruebas unitarias se conectan a uno de nuestros servidores de laboratorio locales y ejercicios funcionalidad telnet básica
- Esta opción es casi una incógnita ...
pyfoo
no es trivial, y tengo un plazo corto para este trabajo.
En Linux? ¡Usa 'chroot'! : D – tMC
@tMC, creo * Veo lo que dices, pero déjame ser explícito ... ¿Sugieres que instale la versión 0.8.2 de twisted en '/ chroot/python/site-packages' y luego 'chroot' a ese directorio antes de ejecutar las pruebas? –
No sé si realmente funcionaría con su entorno, pero piense en chroot como una especie de virtualización. Para ejecutar python en un chroot, también tendrás que tener todas las libs de las que depende python, tal vez una montura de proc, etc. Realmente solo pensé en eso porque alguien sugirió una verdadera solución de VM. – tMC