[英]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.