Я взаимодействую с комбинацией buildout и virtualenv для настройки изолированной среды разработки на python, что позволяет делать воспроизводимые сборки.
Существует рецепт построения, который позволяет интегрировать virtualenv в buildout:
tl.buildout_virtual_python
С этим мой buildout.cfg выглядит так:
[buildout]
develop = .
parts = script
virtualpython
[virtualpython]
recipe = tl.buildout_virtual_python
headers = true
executable-name = vp
site-packages = false
[script]
recipe = zc.recipe.egg:scripts
eggs = foo
python = virtualpython
Это приведет к развертыванию двух исполняемых файлов в. /bin/:
vp
script
Когда я выполняю vp, я получаю интерактивное изолированное диалоговое окно python, как и ожидалось (не может загружать какие-либо пакеты из системы). Теперь я ожидаю, что если я запустил
./bin/script
используется изолированный интерпретатор python. Но это не так, оно не изолировано как "vp" (это означает, что я могу импортировать библиотеки с системного уровня). Однако я могу запустить:
./bin/vp ./bin/script
Что будет запускать script в изолированной среде по своему усмотрению. Но должен быть способ указать это, чтобы сделать это без цепочки команд, иначе построение решает только половину проблем, которые я надеялся:)
Спасибо за вашу помощь! Патрик