问题描述
Anaconda prompt Error,其他正常
开机后调Anaconda prompt , 显示” failed to create process. “,但jupyter/ spyder都可以正常运行
Invoke-Expression : 无法将参数绑定到参数“Command”,由于该参数为空字符串。
所在位置 D:Program Filesanaconda3shellcondabinConda.psm1:101 字符: 36
+ Invoke-Expression -Command $activateCommand;
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Invoke-Expression],ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.Invo
keExpressionCommand
搜索缘由
- 检索一番,大致是由于anaconda安装路径包含空格
- 我个人感觉是anaconda3Scriptsconda.exe损坏
- conda.exe执行的内容应该是 python解释器+py脚本,所以空格问题应该是出在python解释器路径上
- 尝试在anaconda3Scripts文件夹中用cmd执行conda-build.exe,报python解释器路径错误,在conda-build-script.py脚本第一行添加带双引号的解释器路径后,运行conda-build.exe成功;同理pip-script.py 和 pip.exe也成功…
#!"D:Program Files (x86)anaconda3python.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)anaconda3envspy27" # 复制之前的环境到miniconda中管理
conda activate base # 切换都任意环境
python -m ipykernel install --user --name=new_base # 配置给jupyter lab调用该环境
重装Anaconda3
- 实则重装Anaconda3(不含空格的路径) 应该是最稳妥的, 毕竟jupyter 也有许多命令由conda管理…
- 安装好后可以直接将原”anaconda3env”下的文件打包,粘贴到新的”anaconda3env”下,然后卸载原anaconda3…
- 如果原base环境也很重大就conda create -n old_base –clone “path oanaconda3” 克隆后再卸载。
更好的解决方案
到目前都没有检索到更好的解决方案来解决原来Anaconda prompt Error的问题,实际上报错已经很明显了,但就是不知道怎么修改Conda.psm1… 讲道理报错这行”Command”的内容就是调用”anaconda3Scriptsconda.exe”,而conda.exe运行的应该就是”python解释器路径 + py脚本”… 在”anaconda3Scriptsconda-script.py”中添加带引号路径也没能解决。
结语
我这一天超级抓狂,检索解决方法的过程中发现许多人都抛出类似问题,但都没有结果,因此记录一下希望能协助到别人。如果有大佬指点,那简直求之不得。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...