簡體   English   中英

Spyder:ImportError:無法導入名稱常量

[英]Spyder: importerror: cannot import name constants

Ubuntu 16.04 Python 2.7 Anaconda 2

我已經安裝了Anaconda2。 據Google稱,這包括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也會給我importerrors。

故障在哪里,我該如何解決?

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'

嗯...你試過了嗎?

另外,您如何精確安裝spyder? 也許您沒有將其安裝在正確的環境中(在您的情況下,可能是默認的根/基礎環境)

我建議通過終端中的conda安裝它! 還要確保已將其安裝在正確的環境中:

獲取所有環境的列表:

$ conda env list

將其安裝在特定的環境中:

$ conda install --name "your env" spyder

當然,請確保您擁有最新的anaconda版本:

$ conda update -n base conda

編輯

好的,現在我們知道您只有基本環境。

由於chardet是spyder的依賴項,因此請首先更新這兩個軟件包,以確保...

$ conda update chardet

$ conda update urllib3

讓我們繼續檢查您的間諜。 現在可以用嗎?

如果不嘗試這個:

$ 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

編輯二

您是否看過我發布的鏈接?

我唯一想到的另一件事就是嘗試使用其他環境(例如稱為“ myEnv”)。

$ conda create --name myEnv spyder

然后激活環境並嘗試啟動spyder。 conda告訴您如何激活環境,但我想它與mac os相同:

$ source activate myEnv

$ spyder

$ source deactivate

如果這樣不起作用,則可以再次刪除環境。

$ conda remove --name myEnv *

無論如何,依賴錯誤都是奇怪的...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM