我想知道直接到虚拟环境的“cd”是否与获得虚拟环境是一回事。也就是说,
source <venv_name>/bin/activate
cd <venv_name>/bin/
(1)和(2)一样吗?也就是说,在(2)中,所有东西都可见吗?

最佳答案

这不是一回事。
source <venv_name>/bin/activate
这将更改解析网站包的位置。它通过一个非常简单的技巧实现了这一点:在环境变量($path)上预先设置venv的bin dir,这会影响python命令的解析位置。
cd <venv_name>/bin/
将dir更改为<venv_name>/bin不会使安装在venv中(位于../lib中)的包可供导入。命令python仍将解析为/usr/local/bin/python(或系统python解释器所在的位置),解释器仍将使用系统站点包。你看不到维夫的图书馆。
检查virtualenv内部和外部的python -m site输出以查看差异。

09-11 19:30
查看更多