假设我创建了一个名为 venv (virtualenv venv) 的 virtualenv
从阅读教程中,我读到有两种激活虚拟环境的方法:
. venv/bin/activate
source venv/bin/activate
我认为他们都完成了同样的事情,但我不明白发生了什么。
同样对于数字 1,不是“。” 只是指当前文件夹?但如果我只输入“venv/bin/activate”而没有“.”,它就不起作用。
任何帮助都会很棒!
假设我创建了一个名为 venv (virtualenv venv) 的 virtualenv
从阅读教程中,我读到有两种激活虚拟环境的方法:
. venv/bin/activate
source venv/bin/activate
我认为他们都完成了同样的事情,但我不明白发生了什么。
同样对于数字 1,不是“。” 只是指当前文件夹?但如果我只输入“venv/bin/activate”而没有“.”,它就不起作用。
任何帮助都会很棒!
.
并source
做完全相同的事情,唯一的区别是虽然source
更具可读性,但它可能并非在所有 shell 中都可用。
该命令在当前 shell 中运行脚本的内容,这在 的情况下很重要activate
,因为脚本所做的其中一件事是导出和修改当前 shell 中的环境变量。
如果您使用 运行它./path/to/activate
,脚本将在子shell 中运行,并且一旦脚本完成并且子shell 终止,所有设置的环境变量都将丢失。
同样对于数字 1,“。”不是吗?只是指当前文件夹?
.
根据上下文有不同的含义。当用作路径(或路径的一部分)时,它仅表示“当前文件夹”。
来自http://en.wikipedia.org/wiki/Dot_%28Unix%29:
点命令不要与点文件混淆,点文件是点前缀的隐藏文件或隐藏目录。
顺便说一句,我建议您看看virtualenvwrapper
哪些提供了额外的包装器命令,这些命令virtualenv
更容易使用。
使用virtualenvwrapper
,只需调用以下命令即可切换到环境:
workon YOUR_ENV
该.
命令本质上是source
. 它们都在当前 shell 中执行给定的脚本,而无需派生新的 shell。
这里有一些很好的例子。