美文网首页
记一次Win. Anaconda Prompt Error

记一次Win. Anaconda Prompt Error

作者: Little大杰子 | 来源:发表于2021-02-20 18:16 被阅读0次

问题描述

Anaconda prompt Error,其他正常

开机后调Anaconda prompt , 显示" failed to create process. ",但jupyter/ spyder都可以正常运行

Invoke-Expression : 无法将参数绑定到参数“Command”,因为该参数为空字符串。
所在位置 D:\Program Files\anaconda3\shell\condabin\Conda.psm1:101 字符: 36
+         Invoke-Expression -Command $activateCommand;
+                                    ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Invoke-Expression],ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.Invo
   keExpressionCommand

搜索原因

  • 检索一番,大概是因为anaconda安装路径包含空格
  • 我个人感觉是anaconda3\Scripts\conda.exe损坏
  • conda.exe执行的内容应该是 python解释器+py脚本,所以空格问题应该是出在python解释器路径上
  • 尝试在anaconda3\Scripts\文件夹中用cmd执行conda-build.exe,报python解释器路径错误,在conda-build-script.py脚本第一行添加带双引号的解释器路径后,运行conda-build.exe成功;同理pip-script.py 和 pip.exe也成功...
#!"D:\Program Files (x86)\anaconda3\python.exe" 
  • 但这在conda-script.py conda-env-script.py等脚本中却没有成功
  • 于是我放弃了,Anaconda3已经装了一年了,今天这个error来的太突然...突然就不接受我的空格了?

解决方案

Jupyter Lab快捷方式

我个人喜欢用Jupyter Lab工作,由于懒每次启服务都在Anaconda prompt中敲命令...实际上完全可以创建快捷方式,就像Jupyter Notebook一样
我的环境是win10

  • 在win app 界面中找到Anaconda3->Jupyter Notebook->打开文件位置
  • 复制一份Jupyter Notebook的快捷方式,重命名为Jupyter Lab,
  • 选中Jupyter Lab快捷方式文件,右键属性,修改目标内容
# 原来的:jupyter-notebook-script.py
# 替换为:jupyter-lab-script.py
# 最后一个参数默认工作路径为"%USERPROFILE%/",根据自己的情况修改,比如我的工作路径是D盘,就修改为"D:/"

管理环境

实际上这个Error对我的影响只有conda启不起来,没办法进行包和环境的管理,其他我需要用的功能都正常。所以我觉得没必要重装Anaconda3,不光是env的问题,JupyterLab的插件等都要重新配置。所以我只需要装个miniconda来实现环境管理就好了
miniconda装好后(不含空格的路径)启一个Anaconda prompt

conda env list # 可以找到之前的env
conda activate "D:\Program Files (x86)\anaconda3"  # 对应之前的base
conda create -n old_py27 --clone "D:\Program Files (x86)\anaconda3\envs\py27" # 复制之前的环境到miniconda中管理
conda activate base # 切换都任意环境
python -m ipykernel install --user --name=new_base # 配置给jupyter lab调用该环境

重装Anaconda3

  • 其实重装Anaconda3(不含空格的路径) 应该是最稳妥的, 毕竟jupyter 也有很多命令由conda管理...
  • 安装好后可以直接将原"anaconda3\env"下的文件打包,粘贴到新的"anaconda3\env"下,然后卸载原anaconda3...
  • 如果原base环境也很重要就conda create -n old_base --clone "path\to\anaconda3" 克隆后再卸载。

更好的解决方案

到现在都没有检索到更好的解决方案来解决原来Anaconda prompt Error的问题,实际上报错已经很明显了,但就是不知道怎么修改Conda.psm1... 讲道理报错这行"Command"的内容就是调用"anaconda3\Scripts\conda.exe",而conda.exe运行的应该就是"python解释器路径 + py脚本"... 在"anaconda3\Scripts\conda-script.py"中添加带引号路径也没能解决。

结语

我这一天非常抓狂,检索解决方法的过程中发现很多人都抛出相似问题,但都没有结果,因此记录一下希望能帮助到别人。如果有大佬指点,那简直求之不得。

相关文章

网友评论

      本文标题:记一次Win. Anaconda Prompt Error

      本文链接:https://www.haomeiwen.com/subject/ctlxfltx.html