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

来源:互联网 发布:四川大学王牌专业知乎 编辑:程序博客网 时间:2024/05/17 09:19

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環境の構築。パッケージ管理ナシ環境はもう限界
  • homebrew環境にpythonインストール
  • ”pip install --upgrade setuptools” で失敗

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

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

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

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

現mac環境

  • OS X (10.9.2)
  • homebrew 0.9.5
  • pip 1.5.5

やったこと

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

$ pip install numpyRequirement already satisfied (use --upgrade to upgrade): requests in /Library/Python/2.7/site-packagesCleaning up...

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

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

$ pythonPython 2.7.6 (default, Apr  9 2014, 11:48:52) [GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.38)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> import numpyTraceback (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 multiarrayImportError: 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-packagesnumpy  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 numpyDownloading/unpacking numpy ()Successfully installed numpyCleaning 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 darwinType "help", "copyright", "credits" or "license" for more information.>>> import numpy
按照这个思路,把你的site-packages下面的包,清理干净之后就可以了。

有问题请留言。

阅读全文
0 0