让我说我创造了一个名为venv(virtualenv venv)的虚拟玩家
从阅读教程中,我读到有两种激活虚拟环境的方法:
. venv/bin/activate
source venv/bin/activate
我认为他们都完成了同样的事情,但我不明白最新情况。
同样对于数字1,不是“。”只是意味着当前的文件夹?但如果我只输入“venv / bin / activate”而没有“。”
,它就无法工作任何帮助都会很棒!
答案 0 :(得分:21)
.
和source
执行完全相同的操作,唯一的区别是虽然source
更具可读性,但它可能并非在所有shell中都可用。
该命令在当前shell中运行脚本的内容,这在activate
的情况下很重要,因为脚本执行的操作之一是导出并修改当前shell中的环境变量。
如果您使用./path/to/activate
运行它,脚本将在子shell中运行,并且一旦脚本完成并且子shell终止,所有设置的环境变量都将丢失。
同样对于数字1,不是“。”只是指当前文件夹?
.
具有不同的含义,具体取决于上下文。当用作(或部分)路径时,它仅表示“当前文件夹”。
来自http://en.wikipedia.org/wiki/Dot_%28Unix%29:
不要将dot命令与dot file, which is a dot-prefixed hidden file or hidden directory混淆。
顺便说一句,我建议您查看virtualenvwrapper
,它提供了额外的包装命令,使virtualenv
更容易使用。
使用virtualenvwrapper
,只需调用:
workon YOUR_ENV
答案 1 :(得分:4)
.
命令本质上是source
的别名。它们都在当前shell中执行给定的脚本而不需要新的shell。
Here是一些不错的例子。