【问题标题】:Conda activate/deactivate environment breaking PATHConda 激活/停用环境破坏 PATH
【发布时间】:2017-12-19 02:44:18
【问题描述】:

我发现当我创建一个 Conda 环境 source activate environment 然后停用该环境 source deactivate environment 时,我的本机 bash 命令不再起作用。

我附上了一张 ls 在启用环境之前工作的图像,之后就没有了。我认为这是因为我的 PATH 导致的 - 但我是新手,不确定具体要修复什么。我在 Windows 上的 Git Bash 中执行此操作。 Anaconda 3 和 Python 3.5。

Please work ls, come on

【问题讨论】:

    标签: python bash path anaconda conda


    【解决方案1】:

    您的 conda 环境很可能正在替换本地 bash 配置文件中定义的参数和环境变量。我敢肯定,如果您打开一个新环境(bash 会话),您会发现一切正常。

    我建议您在停用环境后添加一个重新加载 bash 配置文件的命令,以便再次应用配置文件变量值。它应该可以解决问题。

    【讨论】:

    • 知道了 - 刚刚标记为已回答。我没有意识到我可以将该行添加到我的个人资料中。如果人们将来回到这个页面,是否可以添加一个小行/脚本?谢谢!
    【解决方案2】:

    activate/deactivate 脚本中存在一些错误,我已在我称为 activate.cygwin 和 deactivate.cygwin 的版本中修复了这些错误。

    • activate.cygwin:修复了 conda 命令返回字符串的 2 个位置,该字符串在结尾处返回“\r”,这会混淆处理。

    • deactivate.cygwin:修复 /cygdrive/... 的转换以避免错误 CondaValueError:找不到环境:/cygdrivec:\Users\rjp\Anaconda2\envs...

    我已将修改后的脚本发布到https://bitbucket.org/snippets/plevin/。请参阅 activate.cygwin 顶部的说明。

    【讨论】:

    • 哦,这似乎与我的问题非常相关。我正在迷失“\ r”使停用脚本崩溃。但是我有最近版本的 conda,它似乎将所有内容都委托给 conda.exe,所以我不确定我可以在哪里应用这个补丁......
    【解决方案3】:

    停用 conda 环境的正确方法是运行 conda deactivate,而不是 source deactivate environment

    来源:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?highlight=activate#deactivating-an-environment

    【讨论】:

    • 是的.. 我们只需要运行 conda deactivate
    【解决方案4】:

    我在 Windows 10 中使用 Git Bash,也遇到了同样的问题。上一个答案对我不起作用,可能是因为我在 ~/.bash_profile 和 ~/.bashrc 中没有设置任何路径。

    我在一个新的 git bash 中检查了我的路径变量,它看起来像:

    /c/Users/chen_x/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/chen_x/bin ....(更多)

    在. C:/Users/chen_x/Miniconda3/Scripts/activate C:/Users/chen_x/Miniconda3和. activate snowflakes之后,路径变为:

    /C/Users/chen_x/Miniconda3/envs/snowflakes:(blalbla..):C:\Users\chen_x\Miniconda3\Library\bin;C:\Users\chen_x\Miniconda3;....(更多)

    我假设 git bash 不能识别像 C:\program files... 这样的路径,然后将以下行添加到 C:/Users/chen_x/Miniconda3/Scripts/activate 的最后一个 EXPORT PATH= 命令之后(大约第 78 行):

    export PATH="$($_CONDA_PYTHON -c "import re; p=re.sub(r'\\\', r'/', r'$PATH'); p=re.sub('(;|:)([A-Z]):', lambda m: ':/'+m.group(2).lower(), p); print(p)")"
    

    有效。

    顺便说一下,我创建了一个 ~/condaenv 脚本来启动 conda 环境:

    #!/bin/bash
    . C:/Users/chen_x/Miniconda3/Scripts/activate C:/Users/chen_x/Miniconda3
    

    这很容易:

    . ~/condaenv
    . activate snowflakes
    

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 2019-07-22
      • 1970-01-01
      • 2019-09-06
      • 2019-08-03
      相关资源
      最近更新 更多