Моего текущего состояния таково:Как я могу остановить virtualenv изменения моего PATH заказ
>>> virtualenv --version
1.11.6
>>> export PATH=$(getconf PATH)
>>> . ~/.bashrc
>>> echo -e "${PATH//:/\\n}"
/bin
/usr/bin
/home/jozxyqk/bin
/usr/local/cuda/bin
Но после активации виртуальной среды,
>>> . env/bin/activate
>>> echo -e "${PATH//:/\\n}"
/home/jozxyqk/somepath/env/bin
/usr/local/cuda/bin
/usr/lib64/qt-3.3/bin
/usr/lib64/ccache
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/home/jozxyqk/bin
Теперь /usr/local/cuda/bin
появляется перед /usr/bin
и вещами начинают использовать действительно старой версии gcc
, потому что есть символическая ссылка в cuda/bin
(я пытаюсь использовать pip install
материал, который нуждается в gcc). Теперь в моем случае я могу обойти это, удалив мою символическую ссылку, но упорядочение afaik в PATH
очень важно для сохранения. Помимо нарушения вещей, позволяя изменить положение /usr/bin
, кажется a bit of a security issue.
Это ошибка, и есть ли обходной путь или я сделал что-то неправильно?
Я предполагаю, что 'virtualenv' запоминает путь, который у вас был, когда вы его впервые установили. – tripleee
@tripleee Ooh. Активация просто не обновляет путь при повторном запуске. Отличная добыча! Разве я не чувствую себя глупо сейчас. 'unset _OLD_VIRTUAL_PATH' и повторный запуск активации разрешает его. Я приму ответ, если вы его напишете. – jozxyqk