我想知道直接到虚拟环境的“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
输出以查看差异。