Активация работы virtualenv путем изменения оболочки PATH, так что виртуальный каталог bin/является первым. Это все. Это означает, что при запуске «python» он запускает копию виртуального виртуального двоичного файла Python вместо вашей глобальной системы python.
Если у вас есть желток, установленный во всем мире, однако, единственный «желток» на вашем PATH - это/usr/local/bin/yolk или некоторые такие; активация virtualenv не изменяет этого (потому что в вашем виртуальном каталоге bin/dir нет скрипта «желток»). И сценарий/usr/local/bin/yolk, естественно, имеет ваш интерпретатор системы Python в своей строке shebang.
Именно поэтому установка желтка в virtualenv устраняет проблему; потому что он добавляет скрипт желтка в ваш виртуальный bin/dir, у которого есть питон virtualenv в своей строке shebang.
Если вы не хотите устанавливать желток в каждом виртуальном пространстве, вы также можете просто скопировать оболочку скрипта желтка из/usr/local/bin или где бы он ни находился в вашем каталоге bin вашего виртуального сервера и вручную изменить линию shebang чтобы указать на ваш python virtualenv. Однако это не будет работать с виртуальными виртуальными серверами --no-site-packages, потому что оболочка сценария не сможет найти реальные пакеты yolk, которые необходимо им импортировать! Если вы хотите использовать желток в виртуальном виртуальном каталоге --no-site-packages, действительно ваш единственный выбор - установить его там.
Установка желтка в виртуальной среде помогла ... довольно странно. –