Virtualenv".venv/bin/activate"vs"source venv/bin/activate"

anc*_*evv 13 python virtualenv

让我说我创造了一个名为venv(virtualenv venv)的virtualenv

从阅读教程,我读到有两种方法来激活虚拟环境:

  1. . venv/bin/activate

  2. source venv/bin/activate

我认为他们都完成了同样的事情,但我不明白发生了什么.

对于数字1,不是"." 只是意味着当前的文件夹?但如果我只输入"venv/bin/activate"而没有".",它就无法工作.

任何帮助都会很棒!

Sha*_*hin 22

.并且source做同样的事情,唯一的区别是虽然source更具可读性,但它可能并非在所有shell中都可用.

该命令在当前shell中运行脚本的内容,在这种情况下这很重要activate,因为脚本执行的操作之一是导出并修改当前shell中的环境变量.

如果你是用它来运行./path/to/activate,该脚本将一个子shell中运行,一旦脚本完成和子shell终止正在设置的所有环境变量都将丢失.

对于数字1,不是"." 只是意味着当前的文件夹?

.具体取决于具体情况.当用作(或部分)路径时,它仅表示"当前文件夹".

来自http://en.wikipedia.org/wiki/Dot_%28Unix%29:

dot命令不要与点文件混淆,点文件是以点为前缀的隐藏文件或隐藏目录.


顺便说一下,我建议你看看virtualenvwrapper哪个提供virtualenv了更容易使用的附加包装命令.

使用virtualenvwrapper切换到环境只需调用:

workon YOUR_ENV
Run Code Online (Sandbox Code Playgroud)