首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何清除conda环境变量?

如何清除conda环境变量?
EN

Stack Overflow用户
提问于 2020-09-02 07:43:33
回答 1查看 1.2K关注 0票数 4

当我在conda base env上设置环境变量时,我在应该分配给变量的路径中犯了一个错误。我尝试在conda环境中设置$PYSPARK_PYTHON环境变量。尽管path有错误,set命令conda env config vars set $PYSPARK_PYTHON=errorpath仍然成功执行,并要求我重新激活环境。我也不能激活环境。

当我通过执行以下操作检查env var列表时:conda env config vars list -n base

它显示了我设置的不正确的路径,但没有变量名,如下所示:= C:\\ProgramData\\Anaconda3\\envs\\some-env\\python3.7

由于上述不正确的env变量,我无法激活基本env。它给我一个错误,如下所示:

代码语言:javascript
运行
复制
Invoke-Expression : At line:6 char:1
+ $Env: = "C:\\ProgramData\\Anaconda3\\envs\\some-env\\python3.7"
+ ~~~~~
Variable reference is not valid. ':' was not followed by a valid variable name character. Consider using ${} to
delimit the name.
At C:\ProgramData\Anaconda3\shell\condabin\Conda.psm1:101 char:9
+         Invoke-Expression -Command $activateCommand;
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException
    + FullyQualifiedErrorId : InvalidVariableReferenceWithDrive,Microsoft.PowerShell.Commands.InvokeExpressionCommand

我不确定如何修复这个错误,但我只想从基本环境中删除环境变量。

我尝试使用命令conda env config vars unset $PYSPARK_PYTHON -n base取消设置它。但它不起作用。我想由于列表中缺少变量声明,所以我无法访问该变量。我确实在没有$PYSPARK_PYTHON的情况下尝试过,希望它能删除所有孤立的环境变量,但它没有。

有人能帮我这个忙吗?有没有办法在不影响其他环境的情况下重置基础环境,或者重置给定环境上的环境变量列表?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-09-06 06:49:51

尝试查找驻留在环境的conda-meta目录中的名为state的文件。对于您来说,路径可能类似于C:\ProgramData\Anaconda3\conda-meta\state。通过编辑该文件,您可以手动更改环境变量。

进一步解释

我最近也搞砸了一个conda环境,只是通过检查conda的代码才找到这个答案的。

在代码中,您可以看到环境variables are saved and loaded from a file

代码语言:javascript
运行
复制
    def _get_environment_state_file(self):
        env_vars_file = join(self.prefix_path, PREFIX_STATE_FILE)
        if lexists(env_vars_file):
            with open(env_vars_file, 'r') as f:
                prefix_state = json.loads(f.read(), object_pairs_hook=OrderedDict)
        else:
            prefix_state = {}
        return prefix_state

    def get_environment_env_vars(self):
        prefix_state = self._get_environment_state_file()
        env_vars_all = OrderedDict(prefix_state.get('env_vars', {}))
        env_vars = {
            k: v for k, v in env_vars_all.items()
            if v != CONDA_ENV_VARS_UNSET_VAR
        }
        return env_vars

如果打印env_vars_file或查看PREFIX_STATE_FILE is defined,您会发现环境变量存储在环境的conda-meta文件夹中名为state的文件中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63696833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档