Anaconda闪退:AttributeError:‘str‘object has no attribute‘get‘(最新最详细)

本文档详细介绍了在Window和Ubuntu系统中遇到Anaconda navigator启动时的错误,原因是Anaconda版本过旧导致API调用失败。解决办法包括升级Anaconda到最新版本和手动修改API文档中的URL。建议首选升级Anaconda,以确保所有功能正常运行。
摘要由CSDN通过智能技术生成


前言

这是旧版anaconda出现的问题,博主出问题时用的时2019年anaconda清华镜像。


提示:以下是本篇文章正文内容,下面案例可供参考

一、报错信息

anaconda-navigator
2019-03-01 20:27:19,492 - ERROR download_api._get_url:416
Expecting value: line 1 column 1 (char 0)

Traceback (most recent call last):
  File "d:\Anaconda3\lib\site-packages\anaconda_navigator\widgets\main_window.py", line 539, in setup
    self.post_setup(conda_data=conda_data)
  File "d:\Anaconda3\lib\site-packages\anaconda_navigator\widgets\main_window.py", line 576, in post_setup
    self.tab_home.setup(conda_data)
  File "d:\Anaconda3\lib\site-packages\anaconda_navigator\widgets\tabs\home.py", line 169, in setup
    self.set_applications(applications, packages)
  File "d:\Anaconda3\lib\site-packages\anaconda_navigator\widgets\tabs\home.py", line 204, in set_applications
    apps = self.api.process_apps(applications, prefix=self.current_prefix)
  File "d:\Anaconda3\lib\site-packages\anaconda_navigator\api\anaconda_api.py", line 888, in process_apps
    versions=[vsdata.get('productVersion')],
AttributeError: 'str' object has no attribute 'get'
————————————————
版权声明:本文为CSDN博主「丝贝视像-高精度计算机视觉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tanmx219/article/details/88069375

-----------
这个报错信息转自另一位博主的window系统报错。ubuntu18.04的报错信息也时差不多的。博主在Unbuntu上研究的这个问题。


二、问题原因

anaconda的版本太旧, 部分文档中的代码没有跟进

比如说这个报错信息是调用了一个api去vscode的官方地址检测版本信息,回传是否需要更新。报错原因可能是:vscode把地址更改了,但是旧版的anaconda文档没有跟进。


三、解决办法

window系统

1.升级更新anaconda(强烈推荐)

升级以后,navigator可以正常启动。

2.更改api文档(治标不治本)

找到Anaconda3\lib\site-packages\anaconda_navigator\api\anaconda_api.py这个文档打开。
查阅代码如下:在888行左右,搜索找打即可。
Unbuntu下该文件内容基本一致。

 #window系统下 代码如下 在888行
        if not vscode_conda_package_exists:
            if apps_vscode_enable and self.is_vscode_available():
                vsdata = self.vscode_application_data()  # Check vscode version
                app = GLOBAL_VSCODE_APP
                display_name = 'VS Code'
                #print("vsdata", vsdata)
 
                applications[app] = dict(
                    name=app,
                    display_name=display_name,
                    description=APPS_DESCRIPTIONS[app],
                    versions=[vsdata.get('productVersion')],  ######问题出先在这一快代码###
                    command=self._VSCODE_EXE,
                    image_path=image_paths[app],
                    needs_license=False,
                    non_conda=True,
                )

追本溯源往上找,将这个url地址修改为新地址。(window系统)

#anconda_api.py中搜索  
    def vscode_application_data(self):
        """Get vscode data from microsoft rest api."""
        data = {}
        url = "https://update.code.visualstudio.com/api/update/win32-x64/stable/version"
        #URL修改在这里

也可以继续往上找,修改字符串成员。ubuntu不推荐这个做法

最后保存退出,到此为止anaconda-navigator就能正常启动了。


Unbuntu系统

1.升级更新anaconda(强烈推荐)

升级以后,navigator可以正常启动。

2.更改api文档

跟window系统操作相同,将"https://update.code.visualstudio.com/api/update/win32-x64/stable/version"这个地址放进文档后 ,也能正常启动图形界面。

但是Unbuntu如果这样做的只能用一段时间。后续不能再跟新anaconda,不知道什么原因。更新后anacodna就不能用了。所以如果采取这个方法,请将anaconda的自动更新关闭。请务必注意

总结

如果这个图文教程有帮助到你的话,能点个免费的赞吗 n(≧▽≦)n 其他问题也请留言在评论区哦,博主看到会回复的。O(∩_∩)O~

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值