Spyder:importerror:无法导入名称常量

时间:2018-02-17 20:48:10

标签: python importerror spyder

Ubuntu 16.04 Python 2.7 Anaconda 2

我安装了Anaconda2。据谷歌称,这包括spyder IDE。

$ spyder

给出:

Traceback (most recent call last):
  File "/home/username/anaconda2/bin/spyder", line 7, in <module>
    from spyder.app.start import main
  File "/home/username/anaconda2/lib/python2.7/site-packages/spyder/app/start.py", line 13, in <module>
    import zmq
  File "/usr/lib/python2.7/dist-packages/zmq/__init__.py", line 66, in <module>
    from zmq import backend
  File "/usr/lib/python2.7/dist-packages/zmq/backend/__init__.py", line 40, in <module>
    reraise(*exc_info)
  File "/usr/lib/python2.7/dist-packages/zmq/backend/__init__.py", line 27, in <module>
    _ns = select_backend(first)
  File "/usr/lib/python2.7/dist-packages/zmq/backend/select.py", line 27, in select_backend
    mod = __import__(name, fromlist=public_api)
  File "/usr/lib/python2.7/dist-packages/zmq/backend/cython/__init__.py", line 6, in <module>
    from . import (constants, error, message, context,
ImportError: cannot import name constants

不起作用:

$ sudo apt-get purge spyder
$ sudo apt-get install spyder

不起作用:

$ conda uninstall spyder
$ conda install spyder

谷歌搜索错误并没有帮助我。我不是程序员。 Python库和Anaconda目录以及IDE存储库对我来说都是希腊语。对于那些真正了解工作原理的人来说,可能是有用的信息:导入scipy.io也会给我带来导入错误。

错误在哪里,我该如何解决?

EDITS

$ conda update chardet

给出:

/home/pieter/anaconda2/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.3.0) doesn't match a supported version!
  RequestsDependencyWarning)
Solving environment: done

# All requested packages already installed.

$ conda update urllib3

给出:

/home/pieter/anaconda2/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.3.0) doesn't match a supported version!
  RequestsDependencyWarning)
Solving environment: done

# All requested packages already installed.


$ conda info spyder

给出:

absurdly long, long, long list of replies

其中最后一个是:

spyder 3.2.4 py27h04a3490_0
---------------------------
file name   : spyder-3.2.4-py27h04a3490_0.tar.bz2
name        : spyder
version     : 3.2.4
build string: py27h04a3490_0
build number: 0
channel     : https://repo.continuum.io/pkgs/main/linux-64
size        : 2.5 MB
arch        : None
constrains  : ()
license     : MIT
md5         : ed9729850ec1ab3c83d87b422e687bc5
platform    : None
subdir      : linux-64
timestamp   : 1508356637551
url         : https://repo.continuum.io/pkgs/main/linux-64/spyder-3.2.4-py27h04a3490_0.tar.bz2
dependencies:
    chardet >=2.0
    jedi >=0.9
    nbconvert
    numpydoc
    pickleshare
    psutil
    pycodestyle
    pyflakes
    pygments >=2.0
    pylint
    pyqt
    python >=2.7,<2.8.0a0
    pyzmq
    qtawesome >=0.4.1
    qtconsole >=4.2
    qtpy >=1.2.0
    rope >=0.9.4
    sphinx

myEnv:

(myEnv) pieter@t:~/bagfile_analysis$ spyder
Traceback (most recent call last):
  File "/home/pieter/anaconda2/envs/myEnv/bin/spyder", line 4, in <module>
    import re
  File "/home/pieter/anaconda2/envs/myEnv/lib/python3.6/re.py", line 142, in <module>
    class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'

1 个答案:

答案 0 :(得分:0)

嗯......你有没有试过THIS

另外,你是如何安装spyder的?也许你没有在正确的environemnt中安装它(在你的情况下可能是默认的 root / base 环境)

我建议您通过终端中的conda安装它!还要确保您已在适当的环境中安装它:

获取所有环境的列表:

$ conda env list

将其安装在特定环境中:

$ conda install --name "your env" spyder

当然要确保你有最新的anaconda版本:

$ conda update -n base conda

修改

好了,现在我们知道你只有你的基础环境。

因为chardet是spyder的依赖,所以我们首先要更新这两个包...

$ conda update chardet

$ conda update urllib3

让我们继续检查你的spyder。 它现在有效吗?

如果不试试这个:

$ conda info spyder
你得到了什么?

你应该得到一个很长的列表,但只有最后一个条目是重要的,类似的东西:

spyder 3.2.5 py27_0
-------------------
file name   : spyder-3.2.5-py27_0.tar.bz2
name        : spyder
version     : 3.2.5
build string: py27_0
build number: 0
channel     : https://repo.continuum.io/pkgs/main/osx-64
size        : 2.5 MB
arch        : None
constrains  : ()
license     : MIT
md5         : 5ec8ffcda103c23c81005a5aed0c91e7
platform    : None
subdir      : osx-64
timestamp   : 1514270782022
url         : https://repo.continuum.io/pkgs/main/osx-64/spyder-3.2.5-py27_0.tar.bz2
dependencies:
    chardet >=2.0
    cloudpickle
    jedi >=0.9
    nbconvert
    numpydoc
    pickleshare
    psutil
    pycodestyle
    pyflakes
    pygments >=2.0
    pylint
    pyqt
    python >=2.7,<2.8.0a0
    python.app
    pyzmq
    qtawesome >=0.4.1
    qtconsole >=4.2
    qtpy >=1.2.0
    rope >=0.9.4
    sphinx

如果你没有得到任何回报,你已经在错误的环境中安装了spyder,你可以跳过第1步:

步骤1:
再次卸载spyder。

$ conda uninstall spyder

第2步: 重新安装

$ conda install spyder

编辑II

您是否看过我发布的链接?

在我看来,唯一的另一件事是尝试不同的环境(例如称为&#34; myEnv&#34;)。

$ conda create --name myEnv spyder

然后激活环境并尝试启动spyder。 conda告诉你如何激活环境,但我想它与mac os相同:

$ source activate myEnv

$ spyder

$ source deactivate

如果不起作用,您可以再次删除环境。

$ conda remove --name myEnv *

在任何情况下,依赖性错误都很奇怪......