Python Virtualenv”;。venv/bin/activate";vs";源venv/bin/activate;

Python Virtualenv”;。venv/bin/activate";vs";源venv/bin/activate;,python,virtualenv,Python,Virtualenv,假设我创建了一个名为venv(virtualenv-venv)的virtualenv 从阅读教程中,我了解到有两种激活虚拟环境的方法: 。venv/bin/激活 source-venv/bin/activate 我想他们都完成了同样的事情,但我不明白发生了什么 同样对于数字1,“.”不就是指当前文件夹吗?但是如果我只输入“venv/bin/activate”而不输入“.”就不行了 任何帮助都会很好 命令本质上是源代码的别名。它们都在当前shell中执行给定的脚本,而无需派生新的shell 这是一

假设我创建了一个名为venv(virtualenv-venv)的virtualenv

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

  • 。venv/bin/激活

  • source-venv/bin/activate

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

    同样对于数字1,“.”不就是指当前文件夹吗?但是如果我只输入“venv/bin/activate”而不输入“.”就不行了


    任何帮助都会很好

    命令本质上是源代码的别名。它们都在当前shell中执行给定的脚本,而无需派生新的shell


    这是一些很好的例子。

    源代码
    做了完全相同的事情,唯一的区别是虽然
    源代码
    可读性更好,但并非在所有shell中都可用

    该命令在当前shell中运行脚本的内容,这在
    激活
    的情况下非常重要,因为脚本所做的一件事是导出和修改当前shell中的环境变量

    如果使用
    /path/to/activate
    ,脚本将在子shell中运行,并且一旦脚本完成且子shell终止,所有设置的环境变量都将丢失

    同样对于数字1,“.”不就是指当前文件夹吗

    根据上下文有不同的含义。它仅在用作路径(或路径的一部分)时表示“当前文件夹”

    发件人:

    不要将dot命令与a混淆


    顺便说一句,我建议您看看哪个提供了额外的包装器命令,使
    virtualenv
    更易于使用

    使用
    VirtualNVRapper
    ,只需调用以下命令即可切换到环境:

    workon YOUR_ENV
    

    @哎呀。我可能不小心把它删掉了。让我把它放回去。如果你在使用Ubuntu,你必须小心它使用Dash,在早期版本中/bin/bash指向Dash(不确定它是否仍然存在),因此源代码不起作用,但是。工作正常。另一种方法是:
    是在任何地方都可以工作的别名,
    source
    是别名(在shell的子集上可用)。