Компакт-диск в виртуальную среду вместо поиска - PullRequest
0 голосов
/ 30 августа 2018

Интересно, является ли 'cd' напрямую для виртуальной среды тем же, что и поиск виртуальной среды? То есть

  1. source <venv_name>/bin/activate
  2. cd <venv_name>/bin/

Является ли (1) таким же, как (2)? Т.е. все ли видимое (1) также видно в (2)?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Является ли (1) таким же, как (2)? Т.е. все ли видимое (1) также видно в (2)?

Нет. Эти две команды делают совершенно разные вещи.

Виртуальная среда - это не «вещь», в которую вы можете «войти». При создании сценария активации виртуальной среды практически единственное, что он делает, - это устанавливает некоторые переменные среды.

Если вы не хотите запускать скрипт активации, вы можете вручную установить эти переменные. Однако вы не можете сделать это с помощью команды cd.

0 голосов
/ 30 августа 2018

Это не одно и то же.

  1. source <venv_name>/bin/activate

Это меняет место разрешения пакетов сайта. Это достигается с помощью одного очень простого хака: добавление в каталог bin-каталога venv переменной среды ($ PATH), которая влияет на то, где разрешается команда python.

  1. cd <venv_name>/bin/

Изменение dir на <venv_name>/bin сделает не доступным для импорта пакетов, установленных в venv (которые находятся в ../lib). Команда python по-прежнему преобразуется в /usr/local/bin/python (или там, где находится ваш системный интерпретатор python), и интерпретатор по-прежнему будет использовать системные пакеты сайта. Вы не увидите библиотеку Венвы.

Проверьте вывод python -m site внутри и снаружи вашего virtualenv, чтобы увидеть разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...