Ответ 1
.
и source
делают то же самое, с той лишь разницей, что в то время как source
является более читаемым, он может быть недоступен во всех оболочках.
Команда запускает содержимое script в текущей оболочке, и это важно в случае activate
, потому что одна из вещей, которую выполняет script, экспортирует и изменяет переменные среды в вашем текущем оболочки.
Если вы запустили его с помощью ./path/to/activate
, script будет запущен в пределах подоболочки, и все установленные переменные окружения будут потеряны после завершения script, и подоболочка завершится.
Кроме того, для номера 1 не используется "." просто означает текущую папку?
.
имеет другое значение в зависимости от контекста. Это означает только "текущую папку" при использовании в качестве (или части) пути.
От http://en.wikipedia.org/wiki/Dot_%28Unix%29:
Нельзя путать точку с файлом dot, который является скрытым или скрытым каталогом с префиксом с запятой.
Как в сторону, я бы предложил вам взглянуть на virtualenvwrapper
, который предоставляет дополнительные команды оболочки, которые делают virtualenv
много проще в использовании.
Используя virtualenvwrapper
, переход в среду выполняется просто путем вызова:
workon YOUR_ENV