48763


Pythonでnumpyモジュールとcv2(opencv)のモジュールを使おうとしているのですがエラーになります。  
ソースコードは以下の通りです。

* * *

**cap.py**

[code]

    import sys
    sys.path.append('/home/vagrant/.local/lib/python3.4/site-packages')
    import numpy as np
    import cv2
    
    print("test")
    
[/code]

* * *

実行すると、以下のようなエラーが出ます。

[code]

    vagrant@vagrant-ubuntu-trusty-64:~/workspace/pythonCapture$ python cap.py
    Traceback (most recent call last):
      File "cap.py", line 3, in <module>
        import numpy as np
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/__init__.py", line 142, in <module>
        from . import add_newdocs
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/add_newdocs.py", line 13, in <module>
        from numpy.lib import add_newdoc
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/lib/__init__.py", line 8, in <module>
        from .type_check import *
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/lib/type_check.py", line 11, in <module>
        import numpy.core.numeric as _nx
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/core/__init__.py", line 26, in <module>
        raise ImportError(msg)
    ImportError: 
    Importing the multiarray numpy extension module failed.  Most
    likely you are trying to import a failed build of numpy.
    If you're working with a numpy git repo, try `git clean -xdf` (removes all
    files not under version control).  Otherwise reinstall numpy.
    
    Original error was: cannot import name multiarray
    
[/code]

cap.pyから

[code]

    import numpy as np
    import cv2
    
[/code]

の部分の記述を消して実行すると、問題なく`test`とprintされます。

* * *

numpyを再インストールしてくださいとメッセージが出ていたので、$ `pip uninstall numpy`と`$ pip install
numpy`をした後、`$ python cap.py`を再度実行してみましたが同様のエラーが出ました。

また、エラー文にgit clean -xdfを実行するようにあったので`$ git clean
-xdf`をしてみましたが、cap.pyのファイルが消えただけで、エラーは直りませんでした。

[code]

    $ git clean -xdf
    Removing cap.py
    
[/code]

* * *

$ pip showコマンドでnumpyの場所を一応確認してみました。

[code]

    $ pip show numpy
    Name: numpy
    Version: 1.15.2
    Summary: NumPy: array processing for numbers, strings, records, and objects.
    Home-page: http://www.numpy.org
    Author: Travis E. Oliphant et al.
    Author-email: None
    License: BSD
    Location: /home/vagrant/.local/lib/python3.4/site-packages
    Requires: 
    Required-by: opencv-python
    
[/code]

$ pip showコマンドでopencv-pythonの場所も確認してみました。

[code]

    $ pip show opencv-python
    Name: opencv-python
    Version: 3.4.3.18
    Summary: Wrapper package for OpenCV python bindings.
    Home-page: https://github.com/skvark/opencv-python
    Author: None
    Author-email: None
    License: MIT
    Location: /home/vagrant/.local/lib/python3.4/site-packages
    Requires: numpy
    Required-by: 
    
[/code]

numpyとopencv、共にsys.path.appendで指定した'/home/vagrant/.local/lib/python3.4/site-
packages'のフォルダ内にあるようです。

* * *

どうしたらエラーを消せますでしょうか...?  
環境は、Windows10 ProにVirtualBoxとVagrantでUbuntuの仮想環境を作って実行しています。

* * *

[追記]

[code]

    sudo apt-get install libblas3 liblapack3 libc6
    
[/code]

上記のコマンドを実行しても同様のエラーが出ました。  
回答して頂いた下記のコマンドも実行してみました。  
実行コマンドとエラー文を下記に記載します。

* * *
[code]

    $ sudo apt-get install python3-venv
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています                
    状態情報を読み取っています... 完了
    E: パッケージ python3-venv が見つかりません
    
[/code]

* * *
[code]

    $ python3 -m venv env
    The virtual environment was not created successfully because ensurepip is not
    available.  On Debian/Ubuntu systems, you need to install the python3-venv
    package using the following command.
    
        apt-get install python3-venv
    
    You may need to use sudo with that command.  After installing the python3-venv
    package, recreate your virtual environment.
    
    vagrant@vagrant-ubuntu-trusty-64:~/workspace/pythonCapture$ souece env/bin/activate
    souece: command not found
    
[/code]

* * *
[code]

    $ source env/bin/activate
    -bash: env/bin/activate: No such file or directory
    
[/code]

* * *
[code]

    $ pip install numpy opencv-python
    Requirement already satisfied: numpy in /home/vagrant/.local/lib/python3.4/site-packages (1.15.2)
    Requirement already satisfied: opencv-python in /home/vagrant/.local/lib/python3.4/site-packages (3.4.3.18)
    
[/code]

* * *
[code]

    $ python cap.py
    Traceback (most recent call last):
      File "test.py", line 3, in <module>
        import numpy as np
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/__init__.py", line 142, in <module>
        from . import add_newdocs
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/add_newdocs.py", line 13, in <module>
        from numpy.lib import add_newdoc
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/lib/__init__.py", line 8, in <module>
        from .type_check import *
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/lib/type_check.py", line 11, in <module>
        import numpy.core.numeric as _nx
      File "/home/vagrant/.local/lib/python3.4/site-packages/numpy/core/__init__.py", line 26, in <module>
        raise ImportError(msg)
    ImportError: 
    Importing the multiarray numpy extension module failed.  Most
    likely you are trying to import a failed build of numpy.
    If you're working with a numpy git repo, try `git clean -xdf` (removes all
    files not under version control).  Otherwise reinstall numpy.
    
    Original error was: cannot import name multiarray
    
[/code]


CC BY-SA 4.0
2018-09-24T03:01:54.467
48667
2018-09-29T09:53:17.280
2018-09-29T02:32:58.243
22541
22541
question
python ubuntu opencv numpy
Pythonでモジュールのimportエラーになる


質問にあるエラーは、numpyが使用する数値演算ライブラリーがインストールされていないため発生しているように思われます。`numpy`を`pip`でインストールしたのであれば、`libblas3`,
`liblapack3`, `libc6`をインストールしてみてください。

[code]

    sudo apt-get install libblas3 liblapack3 libc6
    
[/code]

もし、それでも同じエラーが出るのであれば、仮想環境を作成してインストールしてみてください。

[code]

    sudo apt-get install python3.4-venv
    python3 -m venv env
    source env/bin/activate
    pip install numpy opencv-python
    
[/code]


CC BY-SA 4.0
2018-09-27T07:26:24.553
48763
2018-09-29T09:53:17.280
2018-09-29T09:53:17.280
15171
15171
48667
answer