2017-01-16 62 views
12

我通过网络浏览器在本地运行Anaconda3。每次我去“Conda”部分查看安装的软件包(在http://localhost:8888/tree#conda)我得到An error occurred while retrieving installed packages. Internal Server ErrorAnaconda3 - AttributeError:'词典'对象没有属性'rsplit'

检查日志,这是目前正在发生的事情。有任何想法吗?

[E 13:53:08.195 NotebookApp] 500 GET /conda/environments/root?_=1484574786374 (127.0.0.1) 760.41ms referer=http://localhost:8888/tree? 
[E 13:53:14.557 NotebookApp] Unhandled error in API request 
    Traceback (most recent call last): 
     File "/root/anaconda3/lib/python3.5/site- 

    packages/notebook/base/handlers.py", line 503, in wrapper 
      result = yield gen.maybe_future(method(self, *args, **kwargs)) 
      File "/root/anaconda3/lib/python3.5/site-packages/nb_conda/handlers.py", line 62, in get 
      self.finish(json.dumps(self.env_manager.env_packages(env))) 
      File "/root/anaconda3/lib/python3.5/site-packages/nb_conda/envmanager.py", line 124, in env_packages 
      "packages": [pkg_info(package) for package in data] 
      File "/root/anaconda3/lib/python3.5/site-packages/nb_conda/envmanager.py", line 124, in <listcomp> 
      "packages": [pkg_info(package) for package in data] 
      File "/root/anaconda3/lib/python3.5/site-packages/nb_conda/envmanager.py", line 16, in pkg_info 
      name, version, build = s.rsplit('-', 2) 
     AttributeError: 'dict' object has no attribute 'rsplit' 
    [E 13:53:14.558 NotebookApp] { 
      "Accept-Language": "en-US,en;q=0.8,es;q=0.6", 
      "Connection": "keep-alive", 
      "X-Requested-With": "XMLHttpRequest", 
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36", 
      "Accept-Encoding": "gzip, deflate, sdch, br", 
      "Cookie": "_xsrf=2|0e84028c|becasdfafdssffjkafdsjkf473451bfcb|1484574343; username-localhost-8888=\"2|1:0|10:1484574347|23:username-localhost-8888|44:ODBlMWE5Mjk1MjRiNDNmNDhkZTVkNTU5MGI3NTNmNDQ=|83dad5a9e1aa2da460539882d41f5b3a7ac93163dab3b324526b730be88d7d69\"", 
      "Referer": "http://localhost:8888/tree?", 
      "Host": "localhost:8888", 
      "Accept": "application/json, text/javascript, */*; q=0.01" 
     } 
    [E 13:53:14.559 NotebookApp] 500 GET /conda/environments/root?_=1484574792779 (127.0.0.1) 750.79ms referer=http://localhost:8888/tree? 
+8

当试图管理不同环境的内核时,我遇到了同样的问题。安装'nb_conda_kernels'似乎已经解决了我的问题:'conda install -c conda-forge nb_conda_kernels' – motivic

+0

这解决了我的问题。谢谢! – Arturo

+1

@motivic您应该将其转换为实际的答案。它也帮助我... – Benjamin

回答

7

也许这应该是一个评论,但我没有足够的声誉。

这是一个reported bug in nb_conda。 conda的软件包信息输出格式已更改,并且必须修改nb_conda。已经有一个pull request that fixes this但我找不到任何频道的变化。

安装分支包括修复帮助现在:

pip install git+https://github.com/Anaconda-Platform/[email protected] --upgrade

--upgrade是可选的,我需要它,因为我已经安装了什么版本相同。

安装nb_conda_kernels脱离由motivic提到我的情况没有帮助,但如果包有包含修订应该工作conda-forge通道(可能在nb_conda已经退出作为一个依赖)。

+0

我收到此错误,无论是否修复了该分支。 –

+0

有没有办法让我仍然可以使用conda为jupyter笔记本设置默认环境? –

+0

@RyderBergerud如果没有进一步的信息,我不能真正帮助你,修复是在分支机构,并为我工作。我还假设,jupyter没有在正确的环境中执行。查看[这个其他问题](http://stackoverflow.com/questions/37085665/in-which-conda-environment-is-jupyter-executing)conda环境和jupyter。 – Jan

1

Motivic的建议(在他对这个问题的评论中)为我工作。

$ conda install -c conda-forge nb_conda_kernels 

我已经有一个旧版本的nb_conda_kernels,所以它更新到2.1.0。

The following packages will be UPDATED: 
    nb_conda_kernels: 2.0.0-py27_0 --> 2.1.0-py27_0 conda-forge 

Jupyter Notebook中的Conda标签在此之后正常工作。我也能够在conda install pandas之前给我一个错误。

1

虽然我点击了Jupyter Notebook中的conda标签,但它总是抛出与您一样的错误。

所有的#1和GitHub上的解决方案不能帮助我,所以我不顾一切的蟒蛇文件发现这条线(上the Doc page of conda extension):

NOTE: These extensions were already installed in Anaconda versions 4.1 and 4.2. If you have Anaconda v4.1 or v4.2 installed, there is no need to install them separately. To begin using them, open a new or existing notebook.

检查你的巨蟒是否高于4.2版本。矿是4.4.0。

W.Zhan Lesson 1 Data Analysis Process $ conda remove nb_conda 
Fetching package metadata ......... 
Solving package specifications: . 

Package plan for package removal in environment /Users/W.Zhan/anaconda: 

The following packages will be REMOVED: 

    _nb_ext_conf:  0.4.0-py36_1 
    nb_anacondacloud: 1.4.0-py36_0 
    nb_conda:   2.2.0-py36_0 
    nbpresent:  3.0.2-py36_0 

Proceed ([y]/n)? y 

W.Zhan Lesson 1 Data Analysis Process $ python --version 
Python 3.6.1 :: Anaconda 4.4.0 (x86_64) 

因此,我卸载conda在终端,只是激活我想使用的环境,并在该特定的环境下,打开Jupyter。

W.Zhan Lesson 1 Data Analysis Process $ source activate DAND 
(DAND) W.Zhan Lesson 1 Data Analysis Process $ jupyter notebook 

不知道这是否能够解决您的问题,对我来说,虽然没有更Jupyter“畅达”选项卡,但只要我可以使用Jupyter定制的环境,我很好这一点。

希望它有帮助。

2

我也有这个问题(conda 4.3.25,Linux Mint 17.2 Rafaela,Ubuntu 14.04.2 LTS,Trusty Tahr)。我尝试了通常的更新补救措施无济于事,所以我修补了第16行的代码.../site-packages/nb_conda/envmanager.py

name, version, build = s.rsplit('-', 2) 

变为:

if isinstance(s, dict): 
     s = s['dist_name'] 
    name, version, build = s.rsplit('-', 2) 

这对我很有帮助,情况因人而异。请注意,Github中的当前envmanager.py具有基于字典内容的类似修复。

相关问题