引擎盖下的virtualenv机制

时间:2019-02-27 16:52:54

标签: virtualenv

我知道这可能是一个非常基本的问题,但实际上我已经做过一些研究,但找不到答案。

我有一些包含数据和脚本的文件夹,还有一个我可以激活的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$

我最终进入的是(基本)环境,而不是我的(环境)。

因此,据我所知,“激活”文件以及“ bin”文件夹中的所有其他文件仅包含重新创建(基本)环境所需的信息,而不包含我的(env)环境。由于“ bin”级别以上的文件夹是“ include”和“ libs”,我的猜测是(base)和(env)之间的区别基本上是已安装的依赖项。

我可以尝试复制文件夹“ include”,“ libs”和“ pip-selfcheck” JSON对象,然后将其粘贴到“ bin”中,看看再次尝试激活环境时会发生什么,但是不幸的是,没有这样做的权限...

我只是想知道是否有人可以确认我的理解是否正确,并且,如果可能的话,请给我解释“ source”命令在幕后的实际作用。

非常感谢您。

D。

0 个答案:

没有答案