Заставить python использовать более старую версию модуля (чем та, что я установил сейчас)

У моего работодателя есть специальный модуль 1 , который мы используем для внутреннего тестирования модуля / системы; однако автор этого модуля здесь больше не работает, и меня попросили протестировать с ним некоторые устройства.

Проблема в том, что для pyfoo требуется старая версия twisted ( v8.2.0) и импортирует скрученные в 33 разных файла. Я пробовал запустить модульные тесты pyfoo под v11.0.0, и я даже не вижу TCP SYN-пакетов 2 . К сожалению, у меня уже есть twisted v11.0.0 , установленный на моем лабораторном Linux-сервере, и у меня есть собственный код, который зависит от него.

Я ломал себе голову над этим, но я Могу предложить только следующие варианты:

Вариант A . Установите новую версию python, установите virtualenv , а затем установите старую версию twisted под virtualenv . Запускайте только тесты, требующие pyfoo , в этой новой версии python.

Вариант B . Отредактируйте все 33 файла следующим образом: DIR = '../'; sys.path.insert (0, DIR) и установите старую версию python в соответствующий каталог под источником.

Вариант C . Попытка исправить pyfoo для использования v11.0.0 3

Есть ли какие-то параметры, которые мне не хватает? Есть ли более элегантный способ решения этой проблемы, кроме варианта А, описанного выше?


КОНЕЦ-ЗАМЕТКИ:
  1. Назовем его pyfoo ради аргумента
  2. Модульные тесты подключаются к одному наших локальных лабораторных серверов и выполняет базовые функции telnet
  3. Эта опция почти не запускается ... pyfoo нетривиально, и у меня короткий срок для этой работы.

18
задан Mike Pennington 23 June 2011 в 15:11
поделиться