将CD复制到虚拟环境,而不是购买它

时间:2018-08-30 20:38:28

标签: linux python-3.x virtualenv

我想知道直接将CD导入虚拟环境是否与采购虚拟环境相同?也就是说,

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

(1)是否等于(2)?即,所有可见的(1)在(2)中是否也可见?

2 个答案:

答案 0 :(得分:2)

这不是一回事。

  1. source <venv_name>/bin/activate

这更改了站点包的解析位置。它是通过一个非常简单的技巧来实现这一点的:将venv的bin目录放在环境变量($ PATH)之前,这会影响python命令的解析位置。

  1. cd <venv_name>/bin/

将目录更改为<venv_name>/bin不会不会使导入在venv中的软件包(位于../lib中)可以导入。命令python仍将解析为/usr/local/bin/python(或系统python解释器所在的任何位置),并且该解释器仍将使用系统站点软件包。您不会看到venv的资料库。

在您的virtualenv内外检查python -m site的输出,以查看区别。

答案 1 :(得分:1)

  

(1)是否等于(2)?即,所有可见的(1)在(2)中是否也可见?

不。这两个命令执行完全不同的操作。

虚拟环境不是您可以“进入”的“事物”。当您获取虚拟环境激活脚本时,几乎唯一要做的就是设置一些环境变量。

如果您不想运行激活脚本,则可以手动设置这些变量。但是,您无法使用cd命令来执行此操作。