She*_*ero 7 python anaconda conda
当我在 conda 基本环境上设置环境变量时,我在应该分配给该变量的路径中犯了一个错误。我试图$PYSPARK_PYTHON在 conda env 上设置 env 变量。conda env config vars set $PYSPARK_PYTHON=errorpath即使路径有错误,set 命令也成功执行,并要求我重新激活环境。而且我无法激活环境。
当我通过执行以下操作检查环境变量列表时:
conda env config vars list -n base
它显示了我设置的不正确路径,但没有变量名称,如下所示:
= C:\\ProgramData\\Anaconda3\\envs\\some-env\\python3.7
由于上述错误的环境变量,我无法激活基本环境。它给我一个错误,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
我不确定如何修复此错误,但我想从基本环境中删除环境变量。
我尝试使用命令取消它conda env config vars unset $PYSPARK_PYTHON -n base。但这不起作用。我认为由于列表中缺少变量声明,我无法访问该变量。我确实尝试过,但并不希望$PYSPARK_PYTHON它能删除所有孤立的环境变量,但事实并非如此。
有人能帮我解决这个问题吗?有什么方法可以重置基本环境而不影响其他环境,或者重置给定环境上的环境变量列表?
谢谢
Jos*_*bal 10
state尝试在conda-meta您的环境目录中查找名为 的 JSON 文件。根据您的操作系统和安装目录,它们conda-meta将安装在不同的位置。每个操作系统的默认安装路径是
C:\Users\<your-username>\Anaconda3\conda-meta\state/Users/<your-username>/anaconda3/conda-meta/state
或~/opt//anaconda3/conda-meta/state用于 GUI 安装/home/<your-username>/anaconda3/conda-meta/state通过编辑该文件,您可以手动更改环境变量。
我最近也弄乱了 conda 环境,只是通过检查 conda 代码才找到了这个答案。
在代码中可以看到环境变量是从文件中保存和加载的
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
Run Code Online (Sandbox Code Playgroud)
如果打印env_vars_file或查看PREFIX_STATE_FILE 的定义位置,您将找到存储环境变量的文件。
对于发现自己在这里的 MacOS 用户,环境变量存储在名为statelocated at的 JSON 文件中/Users/<you>/opt/anaconda3/envs/<env>/conda-meta。看来您可以清空这些值,留下:
{"env_vars": {}}
Run Code Online (Sandbox Code Playgroud)
那里可能还有其他状态键/值对,因此请小心不要删除它们。
| 归档时间: |
|
| 查看次数: |
6240 次 |
| 最近记录: |