Ubuntu下python3.5报错cannot import name 'multiarray'

python版本太多容易出现清理不干净,在https://stackoverflow.com上面找了好久没有找到一个靠谱的答案。

碰到的问题是:

  File "/home/mi/pycharm/helpers/pydev/pydevd.py", line 1578, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/home/mi/pycharm/helpers/pydev/pydevd.py", line 1015, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/home/mi/pycharm/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/home/mi/git/tf_project/TensorFlow-ENet-master/train_enet.py", line 1, in <module>
    import tensorflow as tf
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/__init__.py", line 47, in <module>
    import numpy as np
  File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 153, in <module>
    from . import add_newdocs
  File "/usr/lib/python3/dist-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/lib/python3/dist-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/lib/python3/dist-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 6, in <module>
    from . import multiarray
ImportError: cannot import name 'multiarray'

在一个日本的博客网站找到一个答案,解决了。

网站:http://d.hatena.ne.jp/aremokoremo/20140507/1399475248

防止下次网站进不去,直接拷贝过来。

概要

これら↓をもって、

やっとのことで homebrew上でのpython環境を構築したので、

いざ、python上でnumpyってモジュールを使って見ようと思ったら、importエラー、、

”pip install --upgrade setuptools” で失敗の記事同様、
ここでも、標準python環境で昔入れたnumpyが悪さをしていた

てことで、"/Library/Python/2.7/site-packages" 配下のnumpy関連のものを削除して、
再度 pip install numpyしたら治った

mac環境
やったこと

numpyをインストールしようとした

$ pip install numpy
Requirement already satisfied (use --upgrade to upgrade): requests in /Library/Python/2.7/site-packages
Cleaning up...

あ、もう入ってた(ちょっと前に、標準python環境に入れていた)。

じゃあ、もう使えるはず、と思いきや、、

$ python
Python 2.7.6 (default, Apr  9 2014, 11:48:52) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/numpy/__init__.py", line 153, in <module>
    from . import add_newdocs
  File "/Library/Python/2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/Library/Python/2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/Library/Python/2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/Library/Python/2.7/site-packages/numpy/core/__init__.py", line 6, in <module>
    from . import multiarray
ImportError: dlopen(/Library/Python/2.7/site-packages/numpy/core/multiarray.so, 2): Symbol not found: _PyBytes_Type
  Referenced from: /Library/Python/2.7/site-packages/numpy/core/multiarray.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/numpy/core/multiarray.so

なんか怒られた、、解析するのもめんどくさそう、、、

が、"もしや、標準Python環境で入れたnumpyとの互換がとれてないのでは?" と予想し、
それらを削除してみたらやっぱりビンゴ

# 古いnumpy関連のものがあった
$ ls /Library/Python/2.7/site-packages
numpy  numpy-1.8.1.dist-info

# 消しちゃおう
$ sudo mv /Library/Python/2.7/site-packages/numpy* /Library/Python/2.7/site-packages/temp_bkup/

#numpy再インストール(ソースがDLされて、新たにビルドされる)
$ pip install numpy
Downloading/unpacking numpy

 ()

Successfully installed numpy
Cleaning up...

#もう一回 importしてみる (成功)
$ python 
Python 2.7.6 (default, Apr  9 2014, 11:48:52) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
按照这个思路,把你的site-packages下面的包,清理干净之后就可以了。

有问题请留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值