2015-10-21 7 views
0

всеРазница между. venv/бен/активировать и ./venv/bin/activate

У меня есть вопрос о формате, который для запуска оболочки сценария Я столкнулись с этой проблемой является то, что установка я в виртуальную среде

Но когда Я типа

. venv/bin/activate 

код не имеет никаких проблем и запустить его successfully.But я знаю другой способ запустить его с помощью

./venv/bin/activate 

bash подскажите ошибку, говоря, что у меня нет разрешения на это.

Я не знаю, в чем разница между ними, любая помощь будет признателен

ответ

2

activate скрипт, созданный virtualenv не на самом деле стандартный скрипт для выполнения ничего, но это то, что определяет дополнительные переменные окружения существующей сессии bash. Обратите внимание на комментарии в этом файле:

# This file must be used with "source bin/activate" *from bash* 
# you cannot run it directly 

. venv/bin/activate фактически является синонимом sourcevenv/bin/activate. В сущности, то, что virtualenv делает, это выполнить несколько операторов в текущей оболочке (поиск содержимого файла здесь) вместо запуска нового процесса оболочки, как если бы вы выполнили двоичный код (то есть ./venv/bin/python).

+0

Другой способ думать о файлах поиска - это '#include/path/to/envVarFile'. (В зависимости от вашего языка). Всем удачи. – shellter

+0

Привет, спасибо за ваше быстрое применение, еще один вопрос: «runfile» этот формат, который я могу использовать повсюду ?, потому что, когда я использую «vim newfile» и записываю в него сценарий оболочки, я не могу использовать " newfile "для запуска скрипта в оболочке, в нем нет такого файла или каталога, как ваш ответ, сначала я должен использовать« исходный новый файл », а затем использовать« .newfile »для его запуска? – Wallace

+0

Вам необходимо записать файл на диск, прежде чем вы сможете фактически использовать файл. 'vim' по умолчанию не создает' newfile', если в режиме cmdline не вызывается ': w' (или эквивалент). Также нет разницы между '. $ file' vs 'source $ file', они оба выполняют файл на месте текущей оболочки. – metatoaster