启动anaconda-navigator提示AttributeError: ‘str‘ object has no attribute ‘get‘

安装的版本是Anaconda3-5.3.1-Linux-x86_64.sh,安装完之后的提示:

(base) zz@zz:Downloads$ anaconda-navigator &
[1] 29416
(base) zz@zz:Downloads$ 2021-05-15 04:15:15,674 - ERROR download_api._get_url:417
Expecting value: line 1 column 1 (char 0)

Traceback (most recent call last):
  File "/home/zz/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/main_window.py", line 499, in setup
    self.post_setup(conda_data=conda_data)
  File "/home/zz/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/main_window.py", line 536, in post_setup
    self.tab_home.setup(conda_data)
  File "/home/zz/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/tabs/home.py", line 169, in setup
    self.set_applications(applications, packages)
  File "/home/zz/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/tabs/home.py", line 204, in set_applications
    apps = self.api.process_apps(applications, prefix=self.current_prefix)
  File "/home/zz/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/anaconda_api.py", line 903, in process_apps
    versions=[vsdata.get('productVersion')],
AttributeError: 'str' object has no attribute 'get'

之后安装Anaconda3-2018.12-Linux-x86_64.sh,启动anaconda-navigator时可以正常启动,于是分别对比两个版本之间的文件:

File "/home/zz/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/anaconda_api.py"

可以启动的版本的anaconda_api.py:

 875         # Add VSCode global app (if it does not exist as a conda package)
 876         apps_vscode_enable = self.config.get('home', 'vscode_enable')
 877 
 878         if not vscode_conda_package_exists:
 879             if apps_vscode_enable and self.is_vscode_available():
 880                 vsdata = self.vscode_application_data()  # Check vscode version
 881                 app = GLOBAL_VSCODE_APP
 882                 display_name = 'VS Code'
 883 
 884                 applications[app] = dict(
 885                     name=app,
 886                     display_name=display_name,
 887                     description=APPS_DESCRIPTIONS[app],
 888                     versions=[vsdata.get('productVersion')],
 889                     command=self._VSCODE_EXE,
 890                     image_path=image_paths[app],
 891                     needs_license=False,
 892                     non_conda=True,
 893                 )
 894 
 895         return applications

而在5.3.1版本中没有对vscode的启动检查:

 875         # Add VSCode global app (if it does not exist as a conda package)
 876         
 877 
 878         if not vscode_conda_package_exists:
 879             if self.is_vscode_available():
 880                 vsdata = self.vscode_application_data()  # Check vscode version
 881                 app = GLOBAL_VSCODE_APP
 882                 display_name = 'VS Code'
 883 
 884                 applications[app] = dict(
 885                     name=app,
 886                     display_name=display_name,
 887                     description=APPS_DESCRIPTIONS[app],
 888                     versions=[vsdata.get('productVersion')],
 889                     command=self._VSCODE_EXE,
 890                     image_path=image_paths[app],
 891                     needs_license=False,
 892                     non_conda=True,
 893                 )
 894 
 895         return applications

解决方法是参考启动正常版本的逻辑,在5.3.1版本的文件/home/zz/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/anaconda_api.py中添加检测vscode的代码就行了。

注意在启动正常的anaconda_api.py中搜索高亮搜索apps_vscode_enable,在init的地方也有处理,也需要一并添加到5.3.1版本的anaconda_api.py里面去:

 174         # Call VSCode init
 175         apps_vscode_enable = self.config.get('home', 'vscode_enable')
 176         if apps_vscode_enable:
 177             self.vscode_init()
 178 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值