今天解決了一個長久以來面臨的技術問題,趁著現在還記得怎么處理,趕緊寫下來,一方面覺得以后自己還會遇到這樣的問題,另一方面也為其他面臨同樣問題的人給點建議。
問題描述:
首先電腦上安裝了anaconda3和arcgis10.2.其中anaconda3帶有python3,arcgis10.2自帶python2.之前為了在anaconda中使用arcgis的自帶包arcpy,因此在anaconda的pythonpath manager中添加了gis中python安裝路徑。現在想想,其實添加了路徑后,arcpy依然用不了,python3和python2依然是沖突的。
然后anaconda安裝的時候只是改了一個安裝文件夾。安裝過程基本都是下一步,沒有再自己設置其他的參數。最后打開spyder,每次都會出現An error ocurred while starting the kernel報錯,spyder也不能用。
解決過程:
首先是百度,百度過程覺得還不錯的解決方案如下:
https://blog.csdn.net/dongmie1999/article/details/90412231?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1?blog.csdn.net
https://blog.csdn.net/nijiayan123/article/details/81353079?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2?blog.csdn.net
這兩個里面記錄的方案都沒有解決我的問題,但是為最終解決問題提供了思路。
重裝anaconda和重裝spyder以及重置spyder都沒有讓我的spyder可以使用,但鏈接2中提到可以可以看報錯語句,然后根據語句確定解決方案。
然后我看了一下的語句,其中顯示:
from dateutil.parser import parse as _dateutil_parse
File "D:\ProgramFiles (x86)\ArcGIS\python27\ArcGIS10.2\Lib\site?packages\dateutil\parser.py", line 158
l.append("%s=%s" % (attr, value
))
^
SyntaxError: invalid syntax
然后就確定是python中的dateutil模塊出現的問題,因為spyder和arcgis中的模塊重疊沖突。然后就接著開始百度,這怎么修正。
有說重裝,也有說直接刪掉的。
這個我都試過,更新模塊,重裝都不能解決問題。
最后就直接把鏈接中提到的parser.py移除,結果還是不行,最后想著一不做二不休就直接把ArcGIS10.2\Lib\site?packages\中的dateutil文件夾直接刪除。
然后問題解決,spyder可以運行了。
但再打開spyder后加載包的時候又出現了新的問題,就是導入numpy失敗,(因為這沒有截屏,我就直接手寫問題)
再輸入 import numpy時,始終提示一個與gis文件夾中的numpy模塊相關的錯誤。
但這個時候,我覺得不是沖突的問題了,應該是其他的問題。
在看了眾多百度解答后的,覺得既然每次都指向ArcGIS文件夾中的python文件,那會不會是整個環境變量出現的問題。
然后找到環境變量,發現在path中是有anaconda的路徑。說得看pythonpath中的路徑,最終問題就出現在這里,里面只有GIS的路徑,沒有anaconda的路徑,于是,添加了anaconda的路徑,但修改后,還是不能解決這個問題,最后就把GIS相關路徑刪除,就可以導入numpy了。
這下總算解決了問題。
最后一點總結吧:
首先是可以百度到大多數問題的解答;第二是要學會看報錯的類型,根據具體的類型進行具體的操作;第三就是想想系統層面的操作,這個就主要是指系統環境。