Если это предназначено исключительно для тестирования, обновление вашего LD_LIBRARY_PATH
тестового кода будет примерно эквивалентом Python для обновления LD_LIBRARY_PATH
для тестирования кода C. Точно так же PYTHONPATH
толкает некоторые каталоги на фронт пути поиска общего объекта, site
толкает определенные каталоги на передний планsys.path
, и делает это с момента запуска Python (так что вы знаете, что нет каких-либо странных LD_LIBRARY_PATH
запущенных импортов, которые могут потребоваться прежде чем у вас будет время для обновления bash
в вашем основном модуле).
Использование его для производства неодобрительно (среди прочего, одна и та же переменная среды считывается как Python 2, так и 3, поэтому может возникнуть проблема, если какой-либо код в этом месте не совместим с обеими версиями), но для тестового кода, это не более необоснованно, чем настройка source /path/to/virtualenv/bin/activate
.
Виртуальные среды могут работать, но только если вы можете как-то публиковать виртуальную сеть в масштабе всей компании; они хранят полные копии своих локальных библиотек и (по умолчанию) предотвращают доступ к другим установленным пакетам на сайте (для обеспечения чистой среды). Виртуальный центр, ориентированный на тестирование, может захотеть передать коммутатор, который обеспечивает доступ к системным модулям, поэтому он действует как дополнение к системе, а не замена.
Активация виртуальных bash
виртуальных оболочек - это просто вопрос запуска deactivate
, а деактивация их просто выполняется activate
(она добавляется в вашу оболочку как функцию при source
редактировании сценария PYTHONPATH
). Они, как правило, более безопасны, чем модификация PYTHONPATH
(среди прочего, они используют подкаталоги, зависящие от версии для каждой версии майора .minor Python, поэтому вы не будете случайно запускать 3,6 конкретного кода на 2,7), но вам нужно написать свой тестовый код как реальные пакеты (с setup.py
файлами и всеми) для правильного управления ими. Я лично думаю , что это стоит (вам необходимо изучить механизмы Python упаковки в конце концов), но это более высокий начальный навык бар.