Я не уверен, что правильно понял ваш вопрос, но вот простой способ получить несколько версий пакета без коллизий.
Структура каталогов:
C:\tmp\eggs>dir /B /S
C:\tmp\eggs\libs
C:\tmp\eggs\test.py
C:\tmp\eggs\libs\foo-1.0.egg
C:\tmp\eggs\libs\foo-2.0.egg
C:\tmp\eggs\libs\foo-1.0.egg\foo.py
C:\tmp\eggs\libs\foo-2.0.egg\foo.py
Теперь содержимое файлов:
# contents of C:\tmp\eggs\libs\foo-1.0.egg\foo.py
version=(1,0)
# contents of C:\tmp\eggs\libs\foo-2.0.egg\foo.py
version=(2,0)
#contents of C:\tmp\eggs\test.py:
import sys
sys.path.insert(1, 'libs')
from pkg_resources import require
require('foo<1.5')
import foo
print foo.version
# will output (1,0)
Если вы измените 'foo<1.5'
на 'foo>1.5'
, или 'foo'
, выход изменится на (2,0)
Подробности вы найдете в setuptools документации.