механизм virtualenv под капотом - PullRequest
0 голосов
/ 27 февраля 2019

Я знаю, что это может быть очень простой вопрос, но я действительно провел некоторое исследование и не смог найти ответ.

У меня есть папка с данными и сценариями, где я также имеюPython virtualenv, который я могу активировать, и он прекрасно работает.

mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc$ source env/bin/activate
(env) mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc$

Я даже могу получить к нему доступ с одного или нескольких уровней выше:

(env) mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc$ deactivate
mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc$ cd ..
mosegui@WS22:~/_storage/Messdaten/clover/ft01$ source calc/env/bin/activate
(env) mosegui@WS22:~/_storage/Messdaten/clover/ft01$
(env) mosegui@WS22:~/_storage/Messdaten/clover/ft01$ deactivate
mosegui@WS22:~/_storage/Messdaten/clover/ft01$
mosegui@WS22:~/_storage/Messdaten/clover/ft01$ cd ..
mosegui@WS22:~/_storage/Messdaten/clover$
mosegui@WS22:~/_storage/Messdaten/clover$ source ft01/calc/env/bin/activate
(env) mosegui@WS22:~/_storage/Messdaten/clover$

Однако я в конечном итоге вв другой среде, если попытаться получить к ней доступ из того же места, где находится активатор:

(env) mosegui@WS22:~/_storage/Messdaten/clover$ deactivate
mosegui@WS22:~/_storage/Messdaten/clover$ cd ft01
mosegui@WS22:~/_storage/Messdaten/clover/ft01$ cd calc
mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc$ cd env
mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc/env$ cd bin
mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc/env/bin$ source activate
(base) mosegui@WS22:~/_storage/Messdaten/clover/ft01/calc/env/bin$

Я попадаю в (базовую) среду, а не в мою (env).

Итак,насколько я понимаю, файл «activ», а также все остальные файлы в папке «bin» содержат только информацию, необходимую для воссоздания (базовой) среды, но не мою (env) среду.Поскольку папки выше уровня «bin» - «include» и «libs», я предполагаю, что разница между (base) и (env) в основном заключается в установленных зависимостях.

Я мог бы попытаться скопироватьпапки «include», «libs» и JSON-объект «pip-selfcheck», вставьте их в «bin» и посмотрите, что произойдет, когда я снова попытаюсь активировать среду, но, к сожалению, у меня нет разрешения сделать это ...

Я просто хотел узнать, может ли кто-то подтвердить правильность моего понимания и, если возможно, дать мне объяснение того, что на самом деле делает команда «source».

СпасибоВы очень заранее.

D.

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