記一次Win. Anaconda Prompt Error

問題描述

Anaconda prompt Error,其他正常

開機后調(diào)Anaconda prompt , 顯示" failed to create process. ",但jupyter/ spyder都可以正常運行

Invoke-Expression : 無法將參數(shù)綁定到參數(shù)“Command”,因為該參數(shù)為空字符串。
所在位置 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執(zhí)行的內(nèi)容應該是 python解釋器+py腳本,所以空格問題應該是出在python解釋器路徑上
  • 嘗試在anaconda3\Scripts\文件夾中用cmd執(zhí)行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已經(jīng)裝了一年了,今天這個error來的太突然...突然就不接受我的空格了?

解決方案

Jupyter Lab快捷方式

我個人喜歡用Jupyter Lab工作,由于懶每次啟服務都在Anaconda prompt中敲命令...實際上完全可以創(chuàng)建快捷方式,就像Jupyter Notebook一樣
我的環(huán)境是win10

  • 在win app 界面中找到Anaconda3->Jupyter Notebook->打開文件位置
  • 復制一份Jupyter Notebook的快捷方式,重命名為Jupyter Lab,
  • 選中Jupyter Lab快捷方式文件,右鍵屬性,修改目標內(nèi)容
# 原來的:jupyter-notebook-script.py
# 替換為:jupyter-lab-script.py
# 最后一個參數(shù)默認工作路徑為"%USERPROFILE%/",根據(jù)自己的情況修改,比如我的工作路徑是D盤,就修改為"D:/"

管理環(huán)境

實際上這個Error對我的影響只有conda啟不起來,沒辦法進行包和環(huán)境的管理,其他我需要用的功能都正常。所以我覺得沒必要重裝Anaconda3,不光是env的問題,JupyterLab的插件等都要重新配置。所以我只需要裝個miniconda來實現(xiàn)環(huán)境管理就好了
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" # 復制之前的環(huán)境到miniconda中管理
conda activate base # 切換都任意環(huán)境
python -m ipykernel install --user --name=new_base # 配置給jupyter lab調(diào)用該環(huán)境

重裝Anaconda3

  • 其實重裝Anaconda3(不含空格的路徑) 應該是最穩(wěn)妥的, 畢竟jupyter 也有很多命令由conda管理...
  • 安裝好后可以直接將原"anaconda3\env"下的文件打包,粘貼到新的"anaconda3\env"下,然后卸載原anaconda3...
  • 如果原base環(huán)境也很重要就conda create -n old_base --clone "path\to\anaconda3" 克隆后再卸載。

更好的解決方案

到現(xiàn)在都沒有檢索到更好的解決方案來解決原來Anaconda prompt Error的問題,實際上報錯已經(jīng)很明顯了,但就是不知道怎么修改Conda.psm1... 講道理報錯這行"Command"的內(nèi)容就是調(diào)用"anaconda3\Scripts\conda.exe",而conda.exe運行的應該就是"python解釋器路徑 + py腳本"... 在"anaconda3\Scripts\conda-script.py"中添加帶引號路徑也沒能解決。

結(jié)語

我這一天非常抓狂,檢索解決方法的過程中發(fā)現(xiàn)很多人都拋出相似問題,但都沒有結(jié)果,因此記錄一下希望能幫助到別人。如果有大佬指點,那簡直求之不得。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容